2013-10-30 9 views
1

에 항목을 추가 나는 3 개 관찰 가능한 배열이있다.관찰 가능한 배열 녹아웃

function Record(name1){ 
    var self = this; 
    self.name = ko.observable(name1); 
    this.editing = ko.observable(false); 
    this.edit = function() { this.editing(true) } 
    self.remove = function(){ 
     self.remove(this); 
    } 

}

내 관찰 배열 중 하나에 레코드를 추가하는 기능을 가지고있다. 과 같이 :

<button id="btn1" data-bind="click: addSet">Add set</button> 

을하지만이 관찰 배열 sets1만을위한 것입니다 :

this.addSet = function(){ 
     self.sets1.push(new Record($('input[id=weight1]').val()+' x '+$('input[id=reps1]').val())); 
    }; 

그리고 내보기에 나는 다음과 같이 호출.

내가 원하는 것은이 함수를 보편적으로 만들므로 어떤 배열에도 레코드를 추가 할 수 있습니다. 예를 들어 idbutton에 따라 달라집니다. 하지만 어떻게하면 id이 필요하고이 값을 내 함수에 전달할 수 있습니까? 아니면 더 좋은 해결책이 있을까요?

감사합니다.

답변

1

Knockout event bindings (클릭과 유사) 유용한 두 가지 매개 변수가 제공됩니다. 여기

function(data, event) 

, data 이벤트를 발생 요소와 연관된 녹아웃 목적이다. event은 이벤트에 대한 데이터가 들어있는 이벤트 객체입니다. event.target은 이벤트를 발생시킨 html 요소에 대한 참조입니다.

그래서, 클릭 된 버튼의 ID를 찾을 같은 것을해야 할 일 : 답변에 대한

this.addSet = function(record, event){ 
    var id = $(event.target).attr('id'); 
    ... 
}; 
+0

감사합니다. 그것은 작동합니다. 그게 내가 찾고 있던거야. – Yuriy

관련 문제