我與Knockout.js試驗,並且不能使visible
結合下面的代碼工作返回一個空數組時(這裏是其fiddle):如何使可見結合工作
$(document).ready()
{
BuildFactoryGrid();
}
function BuildFactoryGrid()
{
var factoryViewModel = new FactoryViewModel();
ko.applyBindings(factoryViewModel);
factoryViewModel.init();
}
function FactoryViewModel()
{
var self = this;
self.FactoryRecords = ko.observableArray([]);
self.FactoryRecordsLength = ko.computed(function()
{
return self.FactoryRecords().length;
});
self.init = function()
{
self.FactoryRecords(GetFactoryData());
};
}
function GetFactoryData()
{
var objArr =
[
{
District: 1,
Department: 22,
Team: 33
},
{
District: 1,
Department: 24,
Team: 35
},
{
District: 2,
Department: 54,
Team: 9
},
];
return objArr;
// return []; // remove comment to return an empty array
}
tr>th, td {
text-align: center;
vertical-align: middle;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<table class="table table-bordered table-condensed hover">
<thead>
<tr class="active">
<th></th>
<th>District</th>
<th>Department</th>
<th>Team</th>
</tr>
</thead>
<tbody data-bind="foreach: FactoryRecords">
<tr>
<td>
<input type="checkbox" />
</td>
<td data-bind="text: District"></td>
<td data-bind="text: Department"></td>
<td data-bind="text: Team"></td>
</tr>
<tr data-bind="visible: $parent.FactoryRecordsLength() == 0 ">
<td colspan="4">No Records</td>
</tr>
</tbody>
</table>
當返回一個空數組,「無記錄」 span
應該出現,但事實並非如此。很高興明白爲什麼。