为什么Ember父路线的动作不会被触发?

时间:2016-10-31 20:03:27

标签: javascript ember.js frontend

路由器

this.route('administration', function() {
  this.route('users', { path: '/' });
  this.route('users');
});

路由/ administration.js

actions: {
    didTransition() {
      console.log('administration didTransition');
    }
}

路由/ users.js

actions: {
    didTransition() {
      console.log('users didTransition');
    }
}

转到网址时:localhost:3000/administration/users

users的{​​{1}}已被调用,但didTransition的{​​{1}}不会被调用,任何人都可以帮我调试它或父/子路线之间的关系?

我想知道哪行代码导致了这样的问题?感谢。

1 个答案:

答案 0 :(得分:1)

事实证明

Ember路线不是来自parent -> child,而是使用冒泡。因此,在孩子的return true;函数中添加didTransition。孩子的didTransition会冒出来。

Ember会点击child -> parent

路由/ users.js

actions: {
    didTransition() {
      console.log('users didTransition');
      return true;
    }
}

感谢@dwickern和@mithrilhall