产生一个ViewModel我有以下视图模型:添加属性的子对象在淘汰赛映射插件
var ViewModel = function(setData, dummyCard) {
var self = this;
ko.mapping.fromJS(setData, {}, self);
self.cardCount = ko.computed(function() {
//debugger;
return self.cards().length;
});
self.editing = ko.observable(false);
self.edit = function() {
debugger;
self.editing(true);
};
};
该视图模型是用来显示属于一组牌的名单。我想允许用户通过以下编辑这些卡的(双方同时)的侧面:
<!-- ko foreach: cards -->
<!-- ko foreach: sides -->
<div data-bind="visible: !$root.editing()" class="span5 side-study-box">
<p data-bind="text: content">SIDE 1</p>
</div>
<!-- /ko -->
<!-- /ko -->
我每次添加的例子编辑功能,在这里(看到伯特的hasFocus例子Bertington):http://knockoutjs.com/documentation/hasfocus-binding.html
虽然编辑属性附加到$ root(Set)对象,而不是$ parent(Card)对象,但这并不完美。我认为,为了使这项工作的方式涉及到“创造”的方法在这里看到:Adding properties to the view model created by using the Knockout JS mapping plugin
需要什么语法来使这些属性在一旁的家长吗?
编辑:到目前为止,我有:
var ViewModel = function(setData, dummyCard) {
var self = this;
var cardModel = function(data) {
debugger;
ko.mapping.fromJS(data, {}, this);
this.editing = ko.observable(false);
this.editing = function() {
debugger;
this.editing(true);
};
};
var mapping = {
'cards': {
create: function(options) {
return new cardModel(options.data);
}
}
};
self.cardCount = ko.computed(function() {
//debugger;
return self.cards().length;
});
这是相当与JS的其余部分,虽然工作没有 - 现在“卡()”是不确定的。现在挖掘它,但如果任何人有任何提示,我都耳朵!