我需要Ember相当于jQuery的.ready ..对于每一页

时间:2017-05-02 12:18:36

标签: javascript jquery ember.js

我知道有几个问题,有人说这些问题对他们有用,但答案都不适用于我,发布答案的海报不会告诉哪个文件放入代码片段在(它可以去的地方有几十个),我不能评论是否可以更具体,因为我没有50个声誉。

我想要运行代码:

  1. 每页重新加载
  2. 所有内容都已加载
  3. 实际上有两种方法。一个不会在转换时触发的(即this.transitionTo())和一个转换。

    我需要知道确切地放置代码的位置,文件,位置和方式。

    我已经阅读过关于init函数和afterRender挂钩但没有工作,因为答案没有说明放置代码的位置。

2 个答案:

答案 0 :(得分:0)

"我已经阅读了关于init函数和afterRender挂钩但没有工作,因为答案没有说明放置代码的位置" - 这将在路线/组件中。如果您希望在渲染每个路径后运行一段代码,则将此代码放在afterRender下的每个路径中。 (你可能有一个帮助函数,以保持代码干燥)

如果你想在转换时没有发生这种情况,你必须让路由知道它是从另一个路由转换进入的,为此你必须在调用this.transitionTo时发送一个参数( )。使用此变量作为标志来运行该段代码。

答案 1 :(得分:0)

我发现didTransition()是我想要做的。它必须在路线的行动中,如下:

actions:{
    didTransition(){
        Ember.run.later('afterRender', () => {
            // do stuff here
            }); 
        }, 500);
        return true;
    }
}

每次路线转换为此时都会运行。