gpt4 book ai didi

javascript - "create"指定主 "create"时不使用嵌套对象的 KO 映射选项

转载 作者:行者123 更新时间:2023-11-30 05:49:47 28 4
gpt4 key购买 nike

我有以下内容:

var CardViewModel = function (data) {
ko.mapping.fromJS(data, {}, this);
this.editing = ko.observable(false);
this.edit = function() {
debugger;
this.editing(true);
};

};


var mapping = {

'cards': {
create: function (options) {
debugger; // Doesn't ever reach this point unless I comment out the create method below
return new CardViewModel(options.data);

}
},

create: function(options) {
//customize at the root level.
var innerModel = ko.mapping.fromJS(options.data);
//debugger;
innerModel.cardCount = ko.computed(function () {
//debugger;
return innerModel.cards().length;
});

return innerModel;
}
};

var SetViewModel = ko.mapping.fromJS(setData, mapping);
debugger;
ko.applyBindings(SetViewModel);

当我运行它时,“卡片”方法永远不会被触发,因此 CardViewModel 中的那些编辑属性不可用。如果我注释掉“创建”方法,我可以点击该调试器,但我需要两者。知道发生了什么事吗?

最佳答案

'cards' 不是有效的 Javascript 变量名。尝试不带单引号的其他内容。

您还需要编辑您的 CardViewModel 代码,因为内部函数中的 this 引用内部函数,并且不会在外部函数中看到可观察到的 knockout。

var CardViewModel = function (data) {
var self = this;
ko.mapping.fromJS(data, {}, this);
this.editing = ko.observable(false);
this.edit = function() {
debugger;
self.editing(true);
};
};

关于javascript - "create"指定主 "create"时不使用嵌套对象的 KO 映射选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15594997/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com