2014-10-21 6 views
0

컨트롤러의 action (경고)에 클릭 한 값인 item을 얻으려고 시도하지만 항상 undefined이 표시됩니다. 모델에서 JSON (다중 항목)을 반환하고 컨트롤러 (FixtureAdapter을 사용하지 않고)에 액세스하고 싶습니다.컨트롤러에서 모델 값을 얻는 방법

<script type="text/x-handlebars" data-template-name="first"> 
...   
{{#each item in model}} 
    <p {{action 'myClick'}}>{{item.name}}</p> 
{{/each}} 
... 

App.FirstRoute = Ember.Route.extend({ 
    model: function(){ 
     return [ 
      {name: 'Ruby'}, 
      {name: 'Java'} 
     ] 
     //return [ 'Ruby', 'Java', 'Scala']; 
    } 
}); 

App.FirstController = Ember.Controller.extend({ 
    title:'data from FirstController', 
    actions: { 
     myClick: function() { 
      alert('action in controller -> ' + this.get('model').get('name')); 
     } 
    } 
}); 

답변

2

작업 항목에 매개 변수로 항목을 전달하지 않는 이유는 무엇입니까?

{{#each item in model}} 
    <p {{aciton 'myClick' item}}> {{item.name}} </p> 
{{/each}} 


App.FirstController = Ember.Controller.extend({ 
    title:'data from FirstController', 
    actions: { 
    myClick: function(item) { 
     alert('action in controller -> ' + item.name); 
    } 
    } 
}); 

귀하의 경로에 Ember.Object을 반환하지 않는 방법. 귀하의 모델은 item.get('name') 대신 순수한 자바 스크립트 객체 배열이므로 item.name

+0

브릴리언트 아이디어. 하지만'Uncaught TypeError : undefined is not function'을 콘솔에 가지고 있습니다. – Bala

+0

문제를 나타내는 JSBin 예제를 제공하도록 요청해도 될까요? 수정할 수 있습니다. – saygun

+0

http://emberjs.jsbin.com/yimefuzome/1/edit?html,js,output – Bala

관련 문제