我在这里使用durandal / requirejs / knockout。 我也使用coderenaissance插件进行映射(ko.viewmodel.updateFromModel(zitem,data)。)
我从我的ajax调用中获取以下数据,我将其映射到我的zitem observable。
define(['plugins/http', 'durandal/app', 'knockout', 'services/datacontext'],
function (http, app, ko, datacontext) {
var zitem = ko.observable();
var activate = function () {
//This is just a wrapper around an ajax call.
return datacontext.getPolicy("value")
.then(function(data) {
ko.viewmodel.updateFromModel(zitem, data);
});
};
var updateMinimumPremium = function (thisItem) {
//This doesn't work
zitem.minimumPremium(thisItem.minimumPremium + 1);
};
return {
displayName: 'zitem example',
zitem: zitem,
updateMinimumPremium: updateMinimumPremium,
activate: activate
};
});
这是我正在使用的视图模型:
<button data-bind="click: $parent.updateMinimumPremium">Add 1</button>
我将updateMinimumPremium绑定到与minimumPremium元素处于同一级别的按钮上。
{{1}}
如何以编程方式更新[minimumPremium]或[zSubSubItemPremium]?
答案 0 :(得分:0)
你的zitem
也是可观察的,所以试试这个:
zitem().minimumPremium(thisItem.minimumPremium + 1);
在实际应用中,请勿忘记检查zitem()
来电的值 - 它可以是未初始化的。
答案 1 :(得分:0)
“minimumPremium”是可观察的
zitem.minimumPremium(thisItem.minimumPremium() + 1);