【问题标题】:"Rolling back" error states in Ember templateEmber 模板中的“回滚”错误状态
【发布时间】:2015-12-16 12:38:41
【问题描述】:

我的 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}} 属性,并可选择将样式应用于<input> 标记,通知用户错误。

但是:一旦 filterValid 属性设置为 false,当查询 不会失败。由于上面的代码在我的 route 中,我无法直接访问 model 函数中的控制器。 (也不,根据我看到的模型/控制器/模板图,应该我。)

【问题讨论】:

    标签: javascript ember.js ember-data


    【解决方案1】:

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

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

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

    【讨论】:

    • 很高兴它有帮助!祝您的 ember 应用好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 2016-09-23
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多