我有一个正在运行的jsfiddle here,它正是我到目前为止所做的,即列出一堆联系人(使用映射插件)并扩展每个联系人'带有一个额外的可观察isEnabled
,用于控制每行显示的输入框的(启用/禁用)状态。
然而,我理解的是如何将contactsMapping
编码为函数。我目前在哪里:
var contactsMapping = {
'contacts': {
key: function (item) {
return ko.utils.unwrapObservable(item.id);
},
create: function(options) {
return new contactModel(options.data);
}
},
};
我想使用一个函数(为了更清晰地访问this
等,如上所述):
var contactsMapping = function() {
var self = this;
// self.contacts = [what goes here??]
};
这个模型中的 contacts
以某种方式由映射插件转录为可观察数组,但是,如何正确地注入key
和create
函数?
感谢您提供任何帮助/指示...
答案 0 :(得分:0)
映射函数接受第三个参数,该参数是映射值被注入(扩展到)的对象。因此,如果您想延伸到self
,请将其传递给。{/ p>
var contactsMapping = function (data) {
var mappingOptions = {
'contacts': {
key: function (item) {
return ko.utils.unwrapObservable(item.id);
},
create: function(options) {
return new contactModel(options.data);
}
},
};
ko.mapping.fromJS(data, mappingOptions, this);
};