gpt4 book ai didi

ember.js - Ember Controller 何时重新加载? (或重置)

转载 作者:行者123 更新时间:2023-12-01 10:47:45 26 4
gpt4 key购买 nike

我注意到,如果我对不同的路线使用相同的 Controller ,它不会被重置,所以我可以保持路线之间的数据共享,这对我来说真的很有帮助。

但我想知道... Controller 何时会在 ember 中重新加载? (运行 init 并清理他的所有属性)?

我可以手动告诉 Controller 重新加载吗?

感谢大家的帮助:)

最佳答案

Controller 通常是单例实例(不包括 itemController 实例),它们贯穿于页面的生命周期。

如果您需要重置一些属性,您可以在需要的路由的 setupController 期间进行。

App.FooRoute = Ember.Route.extend({
model: function(){
//return something...
},
setupController: function(controller, model){
this._super(controller, model);
controller.setProperties({foo:'asdf', bar: 'ewaf'});
}
});

或者您可以在 Controller 上定义一些方法来重置它,并在 setupController 期间调用它。当 Controller 后面的模型被换出时,计算的属性都被标记为脏并自动重新计算。

App.FooRoute = Ember.Route.extend({
model: function(){
//return something...
},
setupController: function(controller, model){
this._super(controller, model);
controller.reset();
}
});

App.FooController = Ember.ObjectController.extend({
foo: 'asdf',
bar: 'wert',
reset: function(){
this.setProperties({foo:'asdf', bar: 'ewaf'});
}// if you want it to happen on init tack on .on('init') right here
});

初始化

App.FooController = Ember.ObjectController.extend({
foo: 'asdf',
bar: 'wert',
reset: function(){
this.setProperties({foo:'asdf', bar: 'ewaf'});
}.on('init')
});

关于ember.js - Ember Controller 何时重新加载? (或重置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24107780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com