2012-07-14 4 views
1

나는 어떤 어려움 녹아웃으로 다음 달성하기 위해 노력하고 있어요 :이 작품 ...knockout.js

  1. 바인딩 선별 된 폼 요소를
  2. ko.observable을 통해 선택한 옵션을 표시합니다.이 코드는 작동합니다.
  3. ko.computed 변수에서 # 2의 ko.observable을 사용하십시오.이 점을 이해할 수 없습니다.

내 시도는 지금까지 Fiddle입니다. 어떤 아이디어?

답변

1

계산 된 관측치는 즉시 평가됩니다. 귀하의 예제에서와 같이 개체 리터럴에 viewModel 변수를 생성하면 계산 된 관찰 가능 변수에 아직 사용할 수 없습니다.

커플 선택. 이 같은 기록 : this.selectedOptionValue()

: 당신이 같은 인수가없는 함수로 호출하여 그 값을 읽을 것, 그래서

var viewModel = { 
    optionValues: [10, 20, 30], 
    selectedOptionValue: ko.observable() 
}; 

viewModel.multipledValue = ko.computed(function(){ 
    return this.selectedOptionValue() * 3; 
}, viewModel); 

ko.applyBindings(viewModel);​ 

또는

또한
var ViewModel = function() { 
    this.optionValues = [10, 20, 30]; 
    this.selectedOptionValue = ko.observable(); 
    this.multipledValue = ko.computed(function(){ 
     return this.selectedOptionValue() * 3; 
    }, this); 

}; 

ko.applyBindings(new ViewModel()); 

selectedOptionValue는 관측이다