【问题标题】:Don't notify changes from the route to the template in Ember不要在 Ember 中通知从路由到模板的更改
【发布时间】:2015-02-08 21:28:26
【问题描述】:

我正在尝试找到一种方法来不通知模板已进行更改。

就我而言,我有一个模型可以让我填充表单。 如果用户没有保存修改并转换到另一个路由,我需要将模型回滚到其默认状态:

export default Ember.Route.extend({
    actions: {
        willTransition: function (transition) {
            this.get('controller.model').rollback();
        }
    }
}

通过这样做,因为转换还没有发生,我可以看到表单内容在模板中消失了,然后它将转换到我的新路由。 在某些情况下,看到所有信息在转换发生之前恢复到之前的状态对用户体验来说并不好,我希望仅在视图被移除时才回滚。

或者也许可以不通知模板路由确实改变了什么?

我正在考虑在过渡时使用承诺,但它不会回滚我的模型:

willTransition: function (transition) {
    var self = this;
    transition.then(function () {
        self.get('controller.model').rollback();
    }
}

这样做的最佳解决方案是什么?

谢谢。

【问题讨论】:

    标签: javascript ember.js


    【解决方案1】:

    尝试使用带有适当队列名称的 Ember.Route#deactivate 钩子或 Ember.run.scheduleLater 函数。

    【讨论】:

      猜你喜欢
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      • 2017-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多