我目前正在学习并使用淘汰赛js框架。我有一套基本的联系人字段。我可以毫无问题地添加联系人。但有两件事我很难搞清楚。首先,删除联系人(名称和电话)的按钮。其次,一种计算联系人号码的方法。我设置了一个标签Person
并尝试使用data-bind: $index
来查看我是否可以获得Person # 1
,Person # 2
等,但它不起作用。 JSFIDDLE
var ContactsModel = function(contacts) {
var self = this;
self.contacts = ko.observableArray(ko.utils.arrayMap(contacts, function(contact) {
return { firstName: contact.firstName, lastName: contact.lastName, phone: contact.phone, alt_phone: contact.alt_phone };
}));
self.addContact = function() {
self.contacts.push({
firstName: "",
lastName: "",
phone: "",
alt_phone: ""
});
};
self.removeContact = function(contact) {
self.contacts.remove(contact);
};
self.addPhone = function(contact) {
contact.phones.push({
number: ""
});
};
self.removePhone = function(phone) {
$.each(self.contacts(), function() { this.phones.remove(phone) })
};
self.save = function() {
self.lastSavedJson(JSON.stringify(ko.toJS(self.contacts), null, 2));
};
self.lastSavedJson = ko.observable("")
};
ko.applyBindings(new ContactsModel(initialData));
答案 0 :(得分:1)
$ index无效,因为您使用的是knockout2.0.0,它没有$ index observable。并删除联系人添加此代码
<a href="javascript:void(0)" data-bind="click: $parent.removeContact">Remove</a>