2012-04-25 4 views
1

'pages'ArrayProxy 객체에 6 개의 'page'객체가 있습니다.ArrayProxy의 모델에 바인딩

저는이 6 개의 'page'객체에 해당하는 6 개의 뷰를 조절할 StateManager 인스턴스를 가지고 있습니다.

App.stateManager = Ember.StateManager.create({ 
    rootElement: '.tab-content', 
    initialState: 'firstTab', 
    firstTab: Ember.ViewState.create({ 
    view: Ember.View.extend({ 
     templateName: 'first', 
     contentBinding: 'App.tempObject'// binding to a regular Ember Object works. 
    }) 
    }), 
    secondTab: Ember.ViewState.create({ 
    view: Ember.View.extend({ 
     templateName: 'second', 
     contentBinding: 'WHAT GOES HERE?'//how to bind to an object in an array 
    }) 
    }) 

문제는 ArrayController의 특정 개체에보기를 바인딩하는 방법이 명확하지 않다는 것입니다.

은 내가 jsFiddle 여기에 문제를 보여 있습니다 Ember.js binding models stored within an array을 : 그림의 목적 http://jsfiddle.net/lifeinafolder/xUNUN/

는 jsFiddle은 2 주 대신 모든 6.

의 유사한 문제가 여기에 표시됩니다있다. 해결책은 매우 분명하지 않습니다.

답변

1

당신은 특정 인덱스에있는 객체를 반환하는 계산 된 속성을 만들 수 http://jsfiddle.net/pangratz666/MUUs3/를 참조하십시오

App.ObjectAtBindable = Ember.Mixin.create({ 
    targetObject: function() { 
     var objectIndex = this.get('objectIndex'); 
     var controller = this.get('controller'); 
     if (controller) { 
      return controller.objectAt(objectIndex); 
     } 
     return null; 
    }.property('controller', 'objectIndex').cacheable() 
}); 

App.stateManager = Ember.StateManager.create({ 
    firstTab: Ember.ViewState.create({ 
     view: Ember.View.extend(App.ObjectAtBindable, { 
      templateName: 'first', 
      contentBinding: 'targetObject', 
      controllerBinding: 'App.controller', 
      objectIndex: 0 
     }) 
    }) 
}); 
관련 문제