我正在尝试将常见事件加入到路径中,然后根据需要扩展路径
喜欢这个
App.ScrollTopRoute = Ember.Route.extend({
renderTemplate: function() {
console.log('Hi this works ?');
window.scrollTo(0, 0);
}
});
然后我延长路线
App.TodoRoute = App.ScrollTopRoute.extend({
model: function(params) {
return App.Todo.find(params.todo_id);
}
});
问题是ScrollTopRoute内的事件未启动
这是加入路由的常规例程的最好方法吗?
答案 0 :(得分:3)
您正在进行与DOM相关的操作,这些操作应该进入didInsertElement
的{{1}}。
因此,对于view
工作,应该在这样的钩子中进行定义,假设你有一个window.scrollTo(0, 0)
模板而不是这个模板。
todos
如果您需要在不同的类中执行公共代码,一种可能的方法是创建Mixin
并将其混合到需要它的类中。
例如:
App.TodosView = Ember.View.extend({
didInsertElement: function() {
window.scrollTo(0, 0);
}
});
至于Mixin,请参阅此处查看simple demo。
希望这能回答你的问题,如果不让我知道,我可以进一步改进。