使用Ember.StateManager(而不是Ember.Router)查看管理

时间:2012-08-28 23:06:28

标签: ember.js

我想用Ember创建一个'信息标志'类型的应用程序;显示的数据将定期更新,但没有用户输入或交互。根据管理员提供的URL参数配置和初始化应用程序。应用程序的布局和内容将根据应用程序正在监视的源中的数据而更改。

Ember.Router似乎对此任务有点过分,因为我不需要/不能将基于URL的路由映射到应用程序状态。 Ember.StateManager看起来很完美,因为它允许我以编程方式在状态之间转换,这取决于我的应用程序逻辑中满足的条件,忽略当前的URL。不推荐使用的Ember.ViewState似乎是在使用Ember.StateManger时管理视图的方法。

使用Ember.StateManger管理DOM中的视图的当前最佳实践是什么?

有没有办法用Ember.Router做我正在描述的内容?

谢谢, 亚伦

2 个答案:

答案 0 :(得分:1)

在阅读了您的主要解释之后,我觉得您目前不需要任何州。当应用程序在这些状态下需要不同的行为时,您需要定义不同的应用程序。看起来您的应用程序行为没有改变,只是查看。

因此,您可以使用一些把手条件助手来使其与控制器中的某些派生属性一起使用,以指示是否有任何当前的建议。

{{#view App.myView}}
  {{#if hasAdvisory}}
    <div class="col-2">
      <div class="col1">
        {{#each bus}}
          //bus details
        {{/each}}
      </div>
      <div class="col2">
        //advisory details
      </div>
    </div>
  {{else}}
    <div class="col-1">
      <div class="col">
        {{#each bus}}
          //bus details
        {{/each}}
      </div>
    </div>
  {{/if}}
{{/view}}

请解释更多,如果您只是需要这个,或者您在咨询时以及没有的时候计划任何不同的应用行为。

答案 1 :(得分:0)

通常,用于管理基于Ember.Router的应用中的视图和控制器的相同技术可以与Ember.StateManager一起使用。具体来说,使用带Em.Controller#connectController的出口是切换独立于状态管理的视图的绝佳方式。