Ember.js:HOWTO制定路线,只有执行代码(Ember.js: Howto create r

2019-10-18 11:41发布

我的应用程序具有与能够由用户来激活一些隐藏的元件的主视图。 像在手机上一个典型的边栏,从左侧的幻灯片英寸 或者说揭示了细节的车,当你点击就可以了。

在最初的那些隐藏要素的信息总是最新的,因为它们的内容是主要的应用程序模板映射。 所以,我的路线将不需要提供任何DOM。

该转换是基于JS。 但现在我想这些国家反映在URL中,为了得到一个一致的后退按钮行为。

我怎样才能做到这一点使用余烬框架?

更新 ,使其更清楚,我在说一下:

要烬我的理解触发路线有主要有两个副作用:

  1. 代表在URL中的新状态,使一致的浏览器历史记录的支持。
  2. 渲染操纵基于一些数据的DOM模板

在我的情况下,例如一个用户点击最小化的车,我需要:

  1. 代表在URL中的新状态,使一致的浏览器历史记录的支持。
  2. 执行我的showCart() JS功能(没有DOM的变化,没有模板渲染)

当用户现在轻敲浏览器后退按钮, closeCart()应执行(基于URL中的状态进行的车是开放的信息的事实)。

Answer 1:

您可以使用activatedeactivate方法从你的节目路线,进入或从您的路径退出时,需要了解:

App.ShowRoute = Ember.Route.extend({
    activate: function() {
        alert('Entering in show');
        // here would be your showCart
    },
    deactivate: function() {
        alert('Exiting from show');
        // and here the closeCart
    }
});

我创建了一个现场演示在这里,你看到这方面的工作。



Answer 2:

问题是,在那里他们可以访问Windows这些幻灯片? 可他们只从单个位置在你的路线图来访问? 或者可以在用户点击它,不管他们是在什么看法? 如果他们从不同的角度点击它,你将它们移动回不同的路线,只是弹出窗口中的一些幻灯片?

如果他们只能从一个地方单击它,然后你可以只在特定路线的setupController代码添加到火JS滑出窗外。

 setupController: function(){
   Ember.run.scheduleOnce('afterRender', this, function(){
    //run some js to slide out the window
    });
 }

老实说,如果他们可以在任何地方点击一个按钮,有滑出出现,我不会试图把它变成的URL。 虽然只是我的意见。



文章来源: Ember.js: Howto create routes that only execute code