2013-04-25 43 views
2

我剛剛開始使用ember.js。我想根據另一個控制器所做的服務器請求更新控制器的數據;即:MyController應該在IndexController更改屬性時更新其狀態。我認爲我有這個權利,但我不確定如何根據觀察到的更改更新模板。這裏就是我有「直到現在:ember.js - 從任何控制器觀察更新模板

<script type="text/x-handlebars" data-template-name="application"> 
    <div> 
    {{outlet}} 
    </div> 
</script> 

<script type="text/x-handlebars" data-template-name="index"> 
    <form> 
    <label for="go">Data</label> 
    <input type="text" id="go" /> 
    <button type="button" {{action "findData"}}>Find Data</button> 
    </form> 
</script> 

<script type="text/x-handlebars" data-template-name="my"> 
    <ul> 
    {{#each entry in controller}} 
    <li>{{entry}}</li> 
    {{/each}} 
    </ul> 
</script> 

這些都是目前存儲在index.html的

var App = Ember.Application.create() 

App.IndexController = Ember.Controller.extend({ 
    myProperty: false, 

    findData: function() { 
    console.log("Requesting data from the server .."); 
    myProperty = true; 
    } 
}); 

App.MyController = Ember.Controller.extend({ 
    needs: ['index'], 

    myPropertyHasChanged: function() { 
    var propertyChanged = this.get('controllers.index.myProperty'); 
    if (propertyChanged) { 
     console.log("property has changed"); 
     return ["apple", "orange"]; 
    } 
}.observes('controllers.index.myProperty') 
}); 

的模板,這是實際的ember.js代碼。我怎樣才能讓「我的」模板中的數據基於每次按下索引模板中的按鈕而更新?它應該是2個元素(「蘋果」和「橘子」)

回答

0

嘗試將控制器的內容要在myPropertyHasChanged功能顯示的列表值的列表:

this.set('content', ["apple", "orange"]);