不要通知Ember中路径到模板的更改

时间:2015-02-06 15:49:05

标签: javascript ember.js

我试图找到一种不通知模板已做出更改的方法。

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

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();
    }
}

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

感谢。

1 个答案:

答案 0 :(得分:0)

尝试使用Ember.Route#deactivate hook或Ember.run.scheduleLater函数以及相应的队列名称。