2012-06-11 6 views
1

나는 Javascript와 HTML에서 편집하고자하는 녹아웃 관측 가능한 배열을 가지고있다. 여기 내 코드는 다음과 같습니다.녹아웃 관찰 가능 어레이 내에서 함수 호출하기

var ListModel = function(formula) { 
    var self = this; 
    self.formula = ko.observableArray(formula); 

    this.mergeEquation = function(op) { 
    if (op.type == "ins") { 
     self.formula.splice(op.position, 0, op.value); 
    } else if (op.type == "del") { 
     self.formula.splice(op.position, 1); 
    } else { 
     console.info("No match: " + op.value + op.position); 
    } 
    }; 
}; 

내 변수 op은 JSON 문자열입니다. HTML 데이터 바인딩을 사용하여 mergeEquation 함수를 호출하는 방법을 알고 있지만 같은 JS 파일 내에서 어떻게 처리합니까? 현재 코드는 다음과 같습니다.

ko.applyBindings(new ListModel(formula)); 
//... 
//initializing of JSON object called op 
//... 
if (something) { 
    mergeEquation(op); 
} 

그러나 작동하지 않습니다. 나는 여기서 몇 발자국을 놓치고 있니? 나는 functionsextenders에 대해 읽었지만 두 가지 모두 제가 여기에서하려고하는 것에 너무 지나치게 보인다.

추신 :

{"type":"ins", "clientID":1223, "version":0, "value":"hi", "position":0, "id":2736} 
+0

ListModel을 생성하는 부분과 관련하여 mergeEquation을 호출하려고하는 부분을 표시해야합니다. –

+0

아 맞습니다. 내 게시물을 편집하여 명확하게 만듭니다. –

답변

3

변화 : 여기에 내가 함께 일하고 있어요 JSON 구조의 샘플입니다 -

ko.applyBindings(new ListModel(formula)); 

var vm = new ListModel(formula); 
    ko.applyBindings(vm); 

그래서 지금, VM 인 mergeequation을 호출 할 수있는 것

vm.mergeEquation(op) 
+0

나는 본다. 좋아, 지금 작동 중! 도와 주셔서 감사합니다! –

관련 문제