2

テンプレート内で計算されたプロパティを使用する場合、その計算された値に影響を与える方法で状態が変更されたことをテンプレートに知らせるにはどうすればよいですか?

たとえば、以下に示すように、インクリメントできる 2 つの数値とその合計を表示していたとします。

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 の値は表示で更新されますが、合計は更新されません。合計がxとyに依存していることをハンドルバー/エンバーに伝えるにはどうすればよいですか?

4

1 に答える 1

5

計算されたプロパティ()の引数は、.property(_)アクセスしたいものではありませんが、計算されたプロパティが監視し、これらの値のいずれかが変更されたときに再計算する値を指定するためのものです。

あなたの場合:

sum: function() {
    return this.get("x") + this.get("y");
}
.property("x", "y")
于 2013-02-13T01:50:53.297 に答える