击倒映射视图模型的父-子
knockout mapping viewmodels parent child
我对knockout.js很陌生,事实上两天前当我开始意识到我的UI脚本失控时遇到了这个问题。
所以,我有几个视图模型,都是使用映射功能填充的。
我有模型填充OK从JSON是通过我的MVC控制器提供的。
function ChangeViewModel(data) {
var self = this;
changeMapping = {
'CORs': {
create: function (options) {
return new CORViewModel(options.data);
}
}
}
return ko.mapping.fromJS(data, changeMapping, self);
}
function CORViewModel(data) {
var self = this;
corMapping = {
'copy': ['VendorID', 'VendorName', 'ContractID'],
'include': ['CorNo', 'CorName', 'Items'],
'Items': {
create: function (options) {
return new CORItemViewModel(options.data);
}
}
}
self.CorNoName = ko.pureComputed(function () {
if (self.CorVersion() > 1) return self.CorNo() + ":" + self.CorVersion();
return self.CorNo();
});
self.GrandTotal = ko.pureComputed(function () {
var total = 0;
$.each(self.Items(), function () { total += this.Total() })
return total;
});
return ko.mapping.fromJS(data, corMapping, self);
}
function CORItemViewModel(data) {
var self = this;
corItemMapping = {
'copy': ['ChangeItemId', 'VendorCorId', 'VendorName', 'VendorId'],
}
return ko.mapping.fromJS(data, corItemMapping, self);
}
这就是我的视图模型,这就是我如何在$(document)中加载vm。准备好函数
var vm = new ChangeViewModel(data);
ko.applyBindings(vm);
我把所有这些都显示在一个带有输入等的表中,看起来都很棒。但是如果我在CORItemViewModel中改变Total父CORViewModel中的GrandTotal不会更新。谁能告诉我,我可能错过了什么?
我创建了一个小提琴,感谢超级冷却的建议,它工作得很好…
https://jsfiddle.net/afvh6d6t/14/code..
所以我回到原来的,原来是一个问题与bindingHandler我使用ko-money打破了更新,所以我使用这个bindingHandler..
http://djsharepoint.com/post/2015/01/28/useful-knockout-js-binding-handlers对问题进行排序。
感谢所有花时间发帖的人
相关文章:
- HTML Dropdownlist未映射到MVC模型
- 将 ExtJS 代理 AJAX 响应映射到模型
- 字符串映射的Extjs模型数组
- 挖空映射:加载数据后,父模型中的计算可观察量不会更新
- Knockout JS将我的视图模型创建更改为使用映射pulgin
- 如何使用映射插件刷新挖空视图模型
- 无法将存储的响应映射到模型 - EmberJS
- 挖空映射对象未由杜兰达尔视图模型返回
- 挖空,映射后从视图模型获取 JSON
- 如何在不使用映射的情况下更新视图模型
- 使用映射插件在 KnockoutJS 中扩展视图模型
- KnockoutJS,映射插件,在模型更改时收到通知
- 映射嵌套的 KO 视图模型
- JavaScript MVC 结构,将模型映射到 REST API
- 使用 KnockoutJS 将 JSON 对象映射到视图模型的一部分
- KnockoutJS - 无法从纯 JSON 数组映射模型
- 如何将模型映射到淘汰赛
- 如何使用不同的名称从模型映射到字段
- 使用FTL's Javascript中的模型映射属性
- 如何将模型映射值获取到 jquery