路由加载时如何运行功能?

时间:2013-08-09 22:29:41

标签: javascript ember.js

我只想在将概述路由加载到页面上时运行myFunk(),当您转到其他地方并返回时,再次运行myFunk(),我没有概述模型看来,我试图使用didInsertElement,但我不知道这是否有意义。

App.js:

App.Router.map( function() {
  this.resource('overview');
});

App.overviewView = Ember.View.extend({
  didInsertElement: function() {
    myFunk();
  }
});

的index.html:

<script type="text/x-handlebars" data-template-name="application"> 
    <div id="wrapper" class="clearfix">

        <div id="content" class="clearfix">

            {{outlet}}

        </div>

    </div>
</script>

我的路线模板:

<script type="text/x-handlebars" data-template-name="overview">

    <div class="leftBox">
        <img id="kpibox" src="../img/kpis.png" />
    </div>

</script>

1 个答案:

答案 0 :(得分:1)

您可以相应地挂钩activatedeactivate,以便在路线进入或退出时运行您的功能。

根据myFunc()生活的位置,让我们说App.OverviewController (但也可以在不同的控制器中),您可以执行以下操作:

App.OverviewController = Ember.ObjectController.extend({
  myFunc: function() {
    // do stuff
  }
});

App.OverviewRoute = Ember.Route.extend({
  activate: function() {
    this.controllerFor('overview').send('myFunc');
  }
});

如果您需要将参数传递给myFunc(),请将其包含在内:

this.controllerFor('overview').send('myFunc', param);

希望它有所帮助。