如何在导航离开页面时触发ember.js操作?

时间:2015-02-06 18:09:13

标签: javascript ember.js

我的搜索栏与facebook的搜索栏类似。此时,它是功能性的,点击后,从结果列表中说“John Smith”,我的应用程序显示John Smith用户页面。与Facebook的界面一样,顶部导航栏 - 搜索栏所在的位置 - 保留。

显示John Smith用户页面时,搜索栏显示“John Smith”,而不是空白。现在,当我离开此页面时,我需要清除此搜索栏。

因此,当用户离开此特定路线时,如何触发操作?

1 个答案:

答案 0 :(得分:1)

如果我理解你的要求 - 你不需要发动动作,Ember.js已经为你提供了willTransition事件。

willTransition内,您可以抓住显示搜索栏并负责业务的控制器。类似的东西:

App.IndexRoute = Ember.Route.extend({
  actions: {
    willTransition: function(transition) {
      console.log('Will go away...');
      var appController = this.controllerFor('application');
      appController.set('dude', '');
    }
  }
});

工作演示here