2013-04-12 1 views
0

테이블이 2 차원 배열 인 knockbackjs (knockoutjs + backbonejs)를 사용하려고하는데 viewModel은 foreach를 사용하여 테이블 html에 바인드됩니다. 태그를 사용하면 관찰 가능한 테이블을 얻을 수 있습니다. 각 셀을 클릭하면 전체 2D 배열이 API로 전송됩니다.knockback을 사용하여 2 차원 어레이 변경 사항을 바인딩 - Uncaught Observable : 키가 없습니다.

나는 questionthisthat 예제를 찾아 봤는데 내가 물었다 이런 일에 도착했습니다

//model 
    var GameModel = Backbone.Model.extend({ urlRoot: '/game' }); 

    //viewmodel 
    var GameViewModel = function (game) { 

     this.board = kb.observable(game, [ 
         [ko.observable(0), ko.observable(0), ko.observable(0)], 
         [ko.observable(0), ko.observable(0), ko.observable(0)], 
         [ko.observable(0), ko.observable(0), ko.observable(0)] 
        ]); 
    }; 

    var model = new GameModel({ id: 1 }); 
    var gameViewModel = new GameViewModel(model); 
    ko.applyBindings(gameViewModel); 

하지만 난 얻을 : 라인 시작에 'catch되지 않은 관찰 가능한 키가 없습니다'

this.board = kb.observable(game, [ 

어떻게 해결할 수 있습니까? 더 좋은 방법이 있나요?

답변

0

관측 대상에 개체를 보내야한다고 생각했지만 매개 변수 목록을 보내고있는 것입니다.

당신이 중 하나는

this.board = kb.observable(
{ 
    'game': game, 
    'board': [ 
     [ko.observable(0), ko.observable(0), ko.observable(0)], 
     [ko.observable(0), ko.observable(0), ko.observable(0)], 
     [ko.observable(0), ko.observable(0), ko.observable(0)] 
    ] 
}); 
+0

이없는 저에게이 오류 - 옵션을 제공합니다 :, 예컨대을의 배열을 보내거나, 그렇지 않으면 개체 확인해야합니다. 몇 가지 옵션을 추가하면 오류 키가 누락됩니다. 어떤 열쇠가 빠졌습니까? – Mithir

+0

옵션이란 무엇입니까? 그게 당신이 html로 묶어 놓은 것입니까? –

+0

옵션은 kb.observable 함수 매개 변수에 있습니다. http://kmalakoff.github.io/knockback/tutorial_kb_observable.html, 바인딩 부분 전에 실패합니다. – Mithir