2013-05-06 1 views
0

죄송합니다. Knockout을 처음 사용합니다. observableArray에 멤버로 observable 계산을 넣으려고합니다. 이 같은 뭔가 :observableArray의 구성원으로 계산 됨 observerable

var viewModel = { 
     data: ko.observableArray([ 
      [a, b, ko.computed(function() {return (a+b);})], 
      [c, d, ko.computed(function() { return (c + d); })], 
     ]), 
    }; 

코드는 문법적으로 정확하지 난 그냥 내 아이디어를 제시했습니다. 위 코드에서 배열의 세 번째 멤버가 계산을 수행하고 결과를 반환합니다.

어떤 아이디어라도 감사 할 것입니다.

+1

도움이되기를 바랍니다? 이 코드는 다음과 같이 작동합니다. http://jsfiddle.net/qvDJ6/1/ –

+0

예, 당신은 옳습니다. 배열의 각 멤버에 대해 변수를 정의하지만 배열에 직접 숫자를 지정하고 계산 된 멤버에서이 멤버에 액세스하려는 경우이 방법이 효과적입니다. 여기 같은 것 [http://jsfiddle.net/qvDJ6/4/](http://jsfiddle.net/qvDJ6/4/) – Mori

답변

1

답변에 따라 새로운 스 니펫을 만들었습니다.

var viewModel = { 
    data: ko.observableArray([ 
     [10, 20], 
     [60, 40] 
    ]) 
}; 
var ar = viewModel.data(); 
for (var index = 0; index < ar.length; index++) { 
    var item = ar[index]; 
    item[0] = ko.observable(item[0]); 
    item[1] = ko.observable(item[1]);   
    item[2] = ko.computed(function() { 
     return item[0]() + item[1](); 
    }); 
} 


ko.applyBindings(viewModel); 

See the new fiddle

나는이 질문은 무엇입니까

+0

감사합니다 @Damien,이 작품지만 pls 이전 게시물에 대한 내 의견을 확인하십시오. 그것은 나의 요구 사항이다. – Mori

+0

당신이 원하는 정보가 보이지 않습니까? 입력 데이터의 형식을 알려주십시오. 새 항목 (10, 20)을 작성하면 작동하기 때문에. – Damien

+0

사실 저는 Excel과 같은 형식을 가지고 있습니다. 필드의 대부분은 간단한 입력 필드이고 일부 필드는 계산 필드입니다. 예를 들어 필드는 세 개의 다른 필드의 합계 일 수 있습니다. 하나의 observableArray를 가지고 그것을 내 요소에 바인딩하고 싶습니다. 내 예제에서는 여기에 [링크] (http://jsfiddle.net/qvDJ6/4/) 1과 2 멤버에 대한 액세스 권한을 가지고 노력하고 일부 계산 후 3 멤버로 결과를 반환합니다. 그것이 내가 찾고있는 바로 그 것이다. – Mori