为什么 Ember 父路由操作不会被触发?
Why does Ember parent route's actions wont get triggered?
路由器
this.route('administration', function() {
this.route('users', { path: '/' });
this.route('users');
});
routes/administration.js
actions: {
didTransition() {
console.log('administration didTransition');
}
}
routes/users.js
actions: {
didTransition() {
console.log('users didTransition');
}
}
什么时候去url:localhost:3000/administration/users
users
的 didTransition
被调用了,但是 administration
的 didTransition
不会被调用,任何人都可以帮助我调试它或 parent/ 之间的关系儿童路线?
请问是哪几行代码造成的?谢谢。
结果
Ember 路由不是从 parent -> child
命中,而是使用冒泡。因此,通过在 child 的 didTransition
函数中添加 return true;
。 Child 的 didTransition
会冒泡。
Ember 会命中 child -> parent
。
routes/users.js
actions: {
didTransition() {
console.log('users didTransition');
return true;
}
}
感谢@dwickern 和@mithrilhall
路由器
this.route('administration', function() {
this.route('users', { path: '/' });
this.route('users');
});
routes/administration.js
actions: {
didTransition() {
console.log('administration didTransition');
}
}
routes/users.js
actions: {
didTransition() {
console.log('users didTransition');
}
}
什么时候去url:localhost:3000/administration/users
users
的 didTransition
被调用了,但是 administration
的 didTransition
不会被调用,任何人都可以帮助我调试它或 parent/ 之间的关系儿童路线?
请问是哪几行代码造成的?谢谢。
结果
Ember 路由不是从 parent -> child
命中,而是使用冒泡。因此,通过在 child 的 didTransition
函数中添加 return true;
。 Child 的 didTransition
会冒泡。
Ember 会命中 child -> parent
。
routes/users.js
actions: {
didTransition() {
console.log('users didTransition');
return true;
}
}
感谢@dwickern 和@mithrilhall