2013-03-21 2 views
0

방금 ​​ember.js를 시작했습니다. 내 마크 업 코드는ember.js에서 값 반복 및 인쇄

<script type="text/x-handlebars" data-template-name="home"> 
     <h1>Names: </h1> 
     {{#each home in App.HomeController.content}} 
       <h1>Name: </h1> 
       {{home.name}}<br />    
     {{/each}} 
</script> 

하고 내 자바 스크립트 코드는

App = Ember.Application.create(); 

App.Router.map(function() { 
    this.route("home", { 
     path: "/" 
    }); 
}); 

/* 
* HomeController 
*/ 
App.HomeController = Ember.ArrayController.extend({ 
    content: [], 
    templateName: 'home', 
    init: function(){ 
     var self = this; 

     $.ajax({ 
      url: 'response.php', 
      dataType: 'JSON', 
      type: 'POST',    
      success: function(res){     
       self.set('content', res);     
      }, 
      error: function(){     

      } 
     }); 

    }  

}) 

이다하지만 내가 이름을 인쇄 할 수없는 것 같다. 나는 그 이름을 인쇄 할 수 없다. &. 어떤 몸이라도 나를 도울 수 있습니까?

감사

답변

0
에만 controller, 결코 전체 경로 ( App.HomeController.content)를 제공해야

: 이것에 대한

{{#each home in controller}} 
    <h1>Name: </h1> 
    {{home.name}}<br />    
{{/each}} 

이유 : 당신이 Ember.ArrayController.extend()을 쓸 때, 당신은을 만들

  • 클래스 아니요 인스턴스이 아닙니다. Ember가 자동으로 인스턴스를 만듭니다.
  • 주어진 템플릿의 변수 controller은 템플릿과 동일한 이름의 컨트롤러를 가리 킵니다. 귀하의 경우 : 는
    1. 템플릿 이름 : home
    2. 컨트롤러 : 그것은 단지 프록시의로 또한 App.HomeController

의 인스턴스는, ArrayControllercontent를 가리 할 필요는 없다 따라서 iterations의 기본 컨텍스트입니다.