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

How to fire ember.js action on navigating away from a page?

我有一个类似于 facebook 搜索栏的搜索栏。此时,它可以正常工作,并且在单击结果列表中的 "John Smith" 时,我的应用程序会显示 John Smith 用户页面。与 Facebook 的界面一样,顶部导航栏 - 搜索栏所在的位置 - 保留。

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

因此,当用户离开这条特定路线时,我该如何触发一个动作?

如果我理解正确你在问什么 - 你不需要触发一个动作,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