当JS变量发生变化时,如何让模板中的属性自动更新?

时间:2013-09-30 14:20:01

标签: javascript ember.js ember-data javascript-framework

我有一个带有{{price}}属性的模板,我希望使用JS变量“total_price”的当前值自动更新。我正在尝试遵循此处概述的基本概念: http://emberjs.com/guides/getting-started/displaying-the-number-of-incomplete-todos/

这是我的代码:

TEMPLATE:

<script type="text/x-handlebars" data-template-name='question'>
     <div id="current-price">
         {{price}}
     </div>
 </script>

CONTROLLER:

App.QuestionController = Ember.ObjectController.extend({
    price: function() {
         return total_price;
    }
});

为什么{{price}}没有使用“total_price”的当前值进行更新?

1 个答案:

答案 0 :(得分:1)

您需要将price声明为计算属性,该属性取决于total_price,并在total_price更改时重新执行。不确定你的total_price变量在哪里,但假设它在同一个控制器上定义,那么你可以这样做:

App.QuestionController = Ember.ObjectController.extend({
  total_price: null,
  price: function() {
    return this.get('total_price');
  }.property('total_price')
});

希望它有所帮助。