"回滚" Ember模板中的错误状态

时间:2015-12-16 12:38:42

标签: javascript ember.js ember-data

我的Ember控制器接触到JSONAPI服务(使用Ember Data),如下所示:

    model: function(params) {
        return Ember.RSVP.hash({
            data: this.store.query('recipe', params),
            ...
        });
    },

params可以包含一个过滤字符串,如果格式错误,将导致服务器使用HTTP代码422进行响应。我在同一个控制器中捕获它,如下所示:

    actions: {
        error: function(error, transition) {
            console.log('Retrieval error: ' + error.message);
            this.controller.set('filterValid', false);
        }
    }

在我的手柄模板中,我可以检查控制器的{{filterValid}}属性,并可选择将样式应用于<input>标记,通知用户错误。

但是:一旦filterValid属性设置为false,我似乎无法找到正确的操作或挂钩,然后将属性回滚/重置为true查询没有失败。由于上述代码位于我的路径中,因此我无法直接访问model函数中的控制器。 (也不是,基于我见过的模型/控制器/模板图,应该我。)

1 个答案:

答案 0 :(得分:1)

我想你可能正在寻找setupController钩子。它接收已解析的模型和控制器。

setupController: function(controller, model) {
   this._super(controller, model);
   controller.set('filterValid', true);
}

我不确定是否在发生错误时调用该方法(我猜它没有被调用),但是因为你只需要在事情正常时设置标志。我认为这对你有用。