2014-02-27 2 views
0

현재 knockout js 프레임 워크를 사용하여 배우고 놀고 있습니다. 나는 연락처를위한 기본 필드를 가지고있다. 연락처를 아무 문제없이 추가 할 수 있습니다. 그러나 어려움을 겪고있는 두 가지가 있습니다. 첫째, 연락처 (이름과 전화 모두)를 제거하는 버튼. 둘째, 숫자를 세는 방법은 연락처에 라벨을 붙입니다. Person 레이블을 설정하고 data-bind: $index을 사용하여 Person # 1, Person # 2 등을 얻을 수 있는지 확인하려고했지만 작동하지 않았습니다. 당신이 관찰 $ 인덱스가없는 knockout2.0.0을 사용하고 있기 때문에 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

$ 지수는 작동하지 않습니다. 및 연락처를 삭제하는 코드 http://jsfiddle.net/dLbY7/12/

+0

대에게 작업이 코드

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

를 추가! 한 가지 : '접촉'필드의 한 세트를 제거하려면 제거를 클릭 할 수 있습니까? –

+0

예 예를 들어, 선택한 값만 제거하고 필요한 값을 남겨 두거나 전체 레코드를 제거한 다음 원하는 값으로 다시 추가 할 수 있습니다. – Akhlesh

+0

또 다른 질문 : http://stackoverflow.com/questions/22060667/getting-checkbox-value-from-json-object –

관련 문제