2012-11-20 2 views
2

ember.js 템플릿에 다음 코드가 있습니다. userController는 multipe "users"가 포함 된 ArrayController입니다. 이름과 상태가 각 사용자에 대해 올바르게 설정되어 있지만Ember.js 바인딩 배열 요소

CollaborativeEditor.OnlineUserView = Ember.View.extend({ 
    tagName: 'li', 
    startChat : function() { 
     console.log(this.get('user')); 
    }  
}); 

, 링크에 부착 된 startChat 동작이 항상의 첫 번째 사용자가 인쇄 :

{{#each CollaborativeEditor.userController}} 
    {{#view CollaborativeEditor.OnlineUserView userBinding="this"}} 
     <div class="avatar"> 
      <div class="avatar_name">{{name}}</div> 
      <div class="avatar_status">{{status}}</div> 
     </div> 
     <div id="dropdown-1"> 
      <ul> 
       <li><a href="#" {{action startChat target="onlineUser"}}>Talk to </a></li> 
      </ul> 
     </div> 
    {{/view}} 
{{/each}} 

는 각 뷰의 코드 어레이를 콘솔에 연결하십시오. 바인딩에 문제가 있습니까?

+0

interresting, 이걸 jsfiddle에 넣을 수 있습니까? http://jsfiddle.net/6p6XJ/ –

답변

2

jsfiddle에 넣어 주셔서 감사합니다.

내가 거기에서 오류를 재현하려고하는 동안, 나는 문제를 깨달았고, 그것은 엠버와는 아무런 관련이 없다.

id가 "dropdown-1"인 div는 다른 링크에서 호출되었으며 항상 동일한 ID이므로 항상 사용자 바인딩이있는 동일한 동작을 수행합니다.

이제 ID를 사용자 개체에 바인딩했으며 완벽하게 작동합니다.

+0

오, 네, 좋은 캐치, 나는 템플릿을 읽는 것을 깨닫지 못했습니다. 어쨌든 +1 당신을 위해 :) –