マッピングプラグインを使用するKnockoutViewmodelがあります。JSONオブジェクトをマッピングした後、次のような計算値を作成します。
/* viewmodel setup and mapping */
myViewModel
.formattedGiftAmount = ko.computed({
read: function () {
return parseInt(this.giftAmount(), 10).formatMoney();
}
, write: function (value) {
this.giftAmount(value.unformatMoney());
}
, owner: this
})
.formattedGoal = ko.computed({
read: function () {
return parseInt(this.goalAmount(), 10).formatMoney();
}
, write: function (value) {
this.goalAmount(value.unformatMoney());
}
, owner: this
});
コードが何をするかについてはそれほど心配しないでください。私はパターンにもっと関心があります。ご覧のとおり、2つのプロパティformattedGiftAmount()
にformattedGoal()
は、それらを定義するほぼ同一のオブジェクトがあります。唯一の違いは、変更するプロパティです。このようなインスタンスがさらに増える可能性があるので、これをより再利用可能にする方法があるかどうか疑問に思いました。のようなことを想像することはthis[prop]()
できますが、それをオブジェクトに注入して機能させる方法を完全に理解することはできません。
PS:私はこれを見ましたが、それでも私が探しているものを完全には実行しません。