我将 Knockout 与 html 选择/选项结合使用(请参阅Fiddle):
<select data-bind="value: Width">
<option>10</option>
<option>100</option>
</select>
调用applyBindings
此选项时被视为字符串。这会导致不良影响。考虑以下示例:
function AreaViewModel() {
var self = this;
self.Width = ko.observable(10);
self.Height = ko.observable(10);
self.Area = ko.computed(function () {
return self.Width() * self.Height();
});
}
$(document).ready(function () {
var viewModel = new AreaViewModel();
ko.applyBindings(viewModel);
});
WhenapplyBindings
被调用,self.Width
并self.Height
从它们的初始值 10 类型转换为“10”,这导致计算函数的重新评估。
这在这里似乎没什么大不了的,但在一个更复杂的解决方案中,我有一个 PageSize 属性(每页 100 / 500 / 1000 行),当这个属性发生变化时会导致多个 AJAX 调用。
有哪些(花哨的)解决方案可以克服这个问题?