Javascript 有没有一种方法可以通过资源检测路由更改?

Javascript 有没有一种方法可以通过资源检测路由更改?,javascript,ember.js,cross-browser,url-routing,detect,Javascript,Ember.js,Cross Browser,Url Routing,Detect,我正在利用余烬资源作为我的应用程序路由的一部分。我在大多数路由上使用deactivate来检测它何时发生变化,但在控制器或视图文件中似乎无法使其工作。我只在将其放置在我的路由文件中时看到过使用deactivate的成功。有没有更好的办法 我的主要问题是,在调用另一个按钮和后续函数后,我需要检测页面或路由何时更改。用户流程如下所示: 用户导航到页面(这是一个资源路由) 用户单击按钮以激活功能 用户导航离开当前页面 需要检测该更改并隐藏激活的功能 按钮绑定到的控制器上可以有一个active属性 //

我正在利用余烬资源作为我的应用程序路由的一部分。我在大多数路由上使用deactivate来检测它何时发生变化,但在控制器或视图文件中似乎无法使其工作。我只在将其放置在我的路由文件中时看到过使用deactivate的成功。有没有更好的办法

我的主要问题是,在调用另一个按钮和后续函数后,我需要检测页面或路由何时更改。用户流程如下所示:

  • 用户导航到页面(这是一个资源路由)
  • 用户单击按钮以激活功能
  • 用户导航离开当前页面 需要检测该更改并隐藏激活的功能

  • 按钮绑定到的控制器上可以有一个
    active
    属性

    //yourcontroller.js
    App.Yourcontroller = Ember.ObjectController.extend({
      active: true
    });
    
    // template
    {{#if active}}
      <button>
    {{/if}}
    

    禁用
    有什么问题?你可以在你的视图绑定到的控制器中有一个属性
    active
    ,在
    deactivate
    上将该属性设置为false这里唯一的问题是我没有route.js文件,因为页面正在使用资源,所以据我所知,无法使用deactivate。仅仅在控制器中使用该功能也行吗?资源也有路由。ie:
    this.resource('post')
    将有一个相应的
    PostRoute
    // route.js
    deactivate: function() {
      this.controllerFor('yourcontroller').set('active', false);
    }