保存操作后,计算属性不会更新

时间:2014-10-26 06:00:01

标签: ember.js controller ember-data handlebars.js

我真的陷入了这个问题。

我有一个简单的对象控制器:

ContractorApp.ContractController = Em.ObjectController.extend
  needs: ['application']

  bidSize: ( ->
    @get( 'model.budget' )
    ).property 'model', 'model.budget'

  bidden: ( ->
    @get('controllers.application.model.bids').findBy( 'contract', @get('model') )
    ).property 'model', 'controllers.application.model.bids.@each'

  actions:
    make_bid: ()->
        bid = @store.createRecord 'bid',
            contract: @get( 'model' )
            proposal: @get( 'bidSize' )
        bid.save().then ->
            alert 'cool!'

承包商可以对合同进行投标。他们在我的系统中默认出价等于合同的预算。因此,当承包商打开合同时(我认为属性'模型'更改)我希望将出价输入更改中的出价大小设置为默认值:

<h3>{{title}}</h3>
<p>{{ description }}</p>
<p class="em-success">{{ budget }} руб</p>

{{#if bidden}}
<p>You have already proposed <strong>{{bidden.proposal}}</strong></p>
{{else}}
{{ input value=bidSize class="form-control" }}
<button {{action "make_bid"}} class="btn btn-ar btn-primary">Propose it!</button>
{{/if}}

所以它在用户出价(make_bid动作)之前完美运行。之后&#39; bidden&#39;属性计算为假设,但bidSize不会被称为永远。 我使用EmberData。应用程序控制器将用户帐户作为模型。它的所有出价都出现在他的出价&#39;属性。 我在这做错了什么?谢谢!

1 个答案:

答案 0 :(得分:0)

这里budget是什么?它的值是否会在make_bid执行时发生变化?看起来是因为这个属性。