0

我有一个表单并在我的路由器中处理提交代码。我的模板有这个:

    {{#if isSaving}}
        Saving...
    {{else}}
    <form>
         inputs...
    </form>
    {{/if}}

我在路由器中保存的代码是这样的(ctrl 是控制器):

events: {
    saveCompany: function(record, ctrl){
        if (!record.get('isDirty')) return;
        ctrl.set('isSaving', true);
        record.one('didUpdate', this, function() {
            ctrl.set('isSaving', false);
        });
        record.get('transaction').commit();
    },

当用户单击提交时,“正在保存...”会在更新完成后正确显示和隐藏。但我已经在我的模型定义中处理了 didCreate、DidUpdate 等 - 通过显示一些弹出窗口,但我仍然希望能够防止用户在保存数据时摆弄我的表单,这就是我使用“record.one( ...)”。以比我这样做的方式更“通用”的方式这样做的最佳方法是什么?

4

1 回答 1

1

如果您的控制器是一个,Ember.ObjectController您已经可以透明地访问content. 如果这content是您正在观察的记录,您可以isSaving在控制器上进行观察,而无需任何额外的代码、绑定或您拥有的任何东西。

于 2013-03-26T11:37:46.510 回答