提问者:小点点

Ember模板中的“回滚”错误状态


我的Ember控制器访问JSONAPI服务(使用Ember数据),如下所示:

    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}}属性,并可选择将样式应用于

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


共1个答案

匿名用户

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

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

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