【发布时间】:2014-06-06 13:49:15
【问题描述】:
我正在使用敲除映射插件将计算属性添加到可观察数组中的项目。但是,此计算属性依赖于我的视图模型中的不同属性。
在映射期间创建可观察对象时如何访问视图模型属性?
请注意,我不能使用 options.parent,因为该属性在 viewModel 中更靠前。
我也无法更改视图模型,因为它是在服务器端生成的。
编辑:
这是一个显示问题的 JSFiddle。被注释掉的行是我需要开始工作的。
这是我现在所拥有的,但显然是在抛出错误:
var mapping = {
'Collection': {
create: function(options) {
var model = ko.mapping.fromJS(options.data);
model.Total = ko.computed(function() {
var result = this.Price() * viewModel.Count(); // :(
return result;
}, model);
return model;
}
}
};
var json = { ... large json object ... };
var viewModel = ko.mapping.fromJS(json, mapping);
【问题讨论】:
-
请至少发布您的 json 结构的相关部分!我们至少需要
Collection和Price和Count属性的位置,以及您希望在哪里拥有Total属性。 -
我不认为 json 是相关的,因为问题不在于特定的 json 结构。但我添加了一个显示问题的有效 JSFiddle。
标签: knockout.js knockout-mapping-plugin