2013-03-21 64 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> 

和我的javascript代碼是

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):

  • 當你寫Ember.ArrayController.extend(),您創建一個:

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

    的這種情況的原因,而不是實例。 Ember將自動爲您創建實例。

  • 給定模板中的controller變量指向與模板同名的控制器。你的情況:
    1. 模板名稱:home
    2. 控制器:中App.HomeController

同樣情況下,就沒有必要指向一個ArrayControllercontent,因爲它只是一個代理,因此它是迭代的默認上下文。