计算联系人数量并删除联系人按钮

时间:2014-02-27 03:25:40

标签: javascript knockout.js frameworks

我目前正在学习并使用淘汰赛js框架。我有一套基本的联系人字段。我可以毫无问题地添加联系人。但有两件事我很难搞清楚。首先,删除联系人(名称和电话)的按钮。其次,一种计算联系人号码的方法。我设置了一个标签Person并尝试使用data-bind: $index来查看我是否可以获得Person # 1Person # 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));

1 个答案:

答案 0 :(得分:1)

$ index无效,因为您使用的是knockout2.0.0,它没有$ index observable。并删除联系人添加此代码

<a href="javascript:void(0)" data-bind="click: $parent.removeContact">Remove</a>

工作代码http://jsfiddle.net/dLbY7/12/