モデルに C# のようなプロパティを設定するために、knockout.js の計算されたオブザーバブルを使用しようとしています。オブザーバブルが有効な値のみを受け入れるようにします。簡単な例:
function Model()
{
var a = 100;
var b = 200;
var $ = this;
this.a = ko.computed({
read: function(){return a},
write: function(value){
var newval = parseFloat(value, 10);
if(newval < 1000)
a = newval;
}});
this.b = ko.observable(b);
}
hover への書き込みa
はバインディングを更新しません。a
の通常のメンバーであるModel
が、追加の機能が添付されているかのように変更できるようにすることは可能ですか?
2番目のオブザーバブルを使用して実際の値を格納し、その更新メカニズムに依存できることはわかっていますが、この種の計算されたプロパティの数が増えると、このアプローチはすぐに面倒になります。