有没有办法用资源检测路由变化?

时间:2014-10-30 18:16:31

标签: javascript ember.js cross-browser url-routing detect

我正在使用ember资源作为应用程序路由的一部分。我在大多数路由上使用 deactivate 来检测它何时发生变化,但似乎无法让它在我的控制器或视图文件中工作。将取消激活放入路径文件时,我才看到成功。有没有更好的方法来解决这个问题?

我的主要问题是我需要在调用另一个按钮和后续功能后检测页面或路径何时发生变化。用户流程如下:

  1. 用户导航到页面(这是一条资源路径)
  2. 用户点击按钮激活功能
  3. 用户导航离开当前页面 需要检测到该更改并隐藏已激活的功能

1 个答案:

答案 0 :(得分:0)

您的按钮所绑定的控制器上可以有active属性。

//yourcontroller.js
App.Yourcontroller = Ember.ObjectController.extend({
  active: true
});

// template
{{#if active}}
  <button>
{{/if}}

并在路线停用时更改该值

// route.js
deactivate: function() {
  this.controllerFor('yourcontroller').set('active', false);
}