2012-05-10 1 views
0

viewModel.data()의 관측 가능한 요소가 변경된 경우 실행 가능한 단일 이미 터가 있습니까? 아니면 독립 관측치를 반복하여 구독해야합니까?관찰 가능 항목의 중첩 구조의 요소가 변경되었는지 여부를 감지하는 방법이 있습니까?

data: ko.observable([ 
     { 
     name: "Chart Position", 
     fields: ko.observableArray([ 
      {name: "marginBottom", type: "percOrNumber", value: ko.observable(), valueType: ko.observable()}, 
      {name: "marginLeft", type: "percOrNumber", value: ko.observable(), valueType: ko.observable()}, 
      {name: "marginRight", type: "percOrNumber", value: ko.observable(), valueType: ko.observable()}, 
      {name: "marginTop", type: "percOrNumber", value: ko.observable(), valueType: ko.observable()} 
     ]) 
     } 
    ]), 

답변

2

계산 된 관찰 가능 항목을 동시에 여러 개의 관찰 가능 항목에 "가입"할 수 있습니다. 계산 된 관측 가능 값을 평가할 때 값에 액세스하는 모든 관측 가능 값은 종속성이됩니다.

그래서, 당신은 같은 것을 할 수 있습니다 : 당신이 어떤 개체 그래프에있는 모든 관찰 가능한에 가입하고자 할 경우, 그것을 할 수있는 쉬운 방법을

ko.computed(function() { 
    this.one(); //just accessing the value for a dependency 
    this.two(); //doesn't matter if we actually use the value 
    this.three(); 

    //run some code here or if you have a reference to this computed observable, then you can even do a manual subscription against it. 
}, vm); 

ko.toJS을 사용하는 것입니다. 예를 들면 다음과 같이 할 수 있습니다.

+0

아, 정말 감사합니다. –

관련 문제