ノックアウトをhtml select / optionと組み合わせて使用 しています(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);
});
がapplyBindings
呼び出されると、self.Width
初期self.Height
値 10 から "10" に型キャストされます。これにより、計算された関数が再評価されます。
ここでは大したことではないようですが、より複雑なソリューションでは、このプロパティが変更されると複数の AJAX 呼び出しが発生する PageSize プロパティ (ページあたり 100 / 500 / 1000 行) があります。
この問題を克服するために、どの (空想的な) 解決策がありますか?