2013-02-13 89 views
2

如果我在模板中使用計算屬性,如何使模板知道知道該狀態已經以影響該計算值的方式發生了變化?使Ember中的計算屬性綁定感知

例如,如果我是顯示兩個數字,可以被遞增,並且它們的和,如下所示

App.ApplicationController = Ember.Controller.extend({ 
    x:0, 
    y:0, 
    sum: function(){return this.get("x") + this.get("y");}.property("content.sum"), 
    incX: function(){ this.set("x", this.x+1);}, 
    incY: function(){ this.set("y", this.y+1);}, 
}); 
<script type="text/x-handlebars"> 
    <button {{action "incX"}}> {{x}} </button> 
    <button {{action "incY"}}> {{y}} </button> 
    <p> {{sum}} </p> 
</script> 

x和y的值將在顯示被更新,但總和將不會更新。我如何告訴handlebars/ember這個和依賴於x和y?

回答

5

計算屬性(.property(_))的參數不是您想要訪問的參數,而是用於指定計算屬性在任何這些值更改時應該觀察和重新計算哪些值。

你的情況:

sum: function() { 
    return this.get("x") + this.get("y"); 
} 
.property("x", "y") 
+1

正確 - 在'property'的參數應該是是依靠,這計算的財產應通知的屬性。查看文檔:http://emberjs.com/guides/object-model/computed-properties/ – 2013-02-13 02:54:14