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

"Rolling back" error states in Ember template

本文关键字:错误 状态 Ember quot 回滚      更新时间:2023-09-26

My 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函数中的控制器。(根据我看到的模型/控制器/模板图,也应该I.)

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

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

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