虽然控制器属性更新,但Ember bind-attr没有更新

时间:2014-10-28 01:53:55

标签: javascript jquery data-binding ember.js binding

我有一个控制器,当属性isProcessingSubmit设置为true时,该控制器会禁用模板中的按钮。或者至少它应该禁用。

模板具有以下代码:

<button type="submit" {{bind-attr disabled=isProcessingSubmit}}>Sign in</button>

在控制器上,我有这个:

App.SignInController = Ember.ObjectController.extend({
    isProcessingSubmit: false,

    enableProcessingSubmit: function() {
        this.set('isProcessingSubmit', true);
    },
    disableProcessingSubmit: function() {
        this.set('isProcessingSubmit', false);
    },

    init: function() {
        this._super();
        App.Events.on('ajax.onStart', this.get('enableProcessingSubmit'));
        App.Events.on('ajax.onComplete', this.get('disableProcessingSubmit'));
    },

    ...

});

这些事件由处理程序触发到jQuery全局ajax事件。我确认事件已正确触发,enableProcessingSubmitdisableProcessingSubmit按预期调用。

此外,如果我在蝙蝠右侧的控制器上将isProcessingSubmit标志设置为true按钮按预期禁用。因此,当我进行set调用时,基本上无法看到更改。

我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

没关系,我忘了将控制器作为&#34;这个&#34;在事件回调中:

App.Events.on('ajax.onStart', this, this.get('enableProcessingSubmit'));
App.Events.on('ajax.onComplete', this, this.get('disableProcessingSubmit'));

它现在正在工作。