0

假设我在 Ember 应用程序中有两条路由。这些是完全独立的路线名称“第一”和“第二”。他们有不同的数据模型和不同的动作等等。

到目前为止一切都很好。

如何 - 我们认识到应用程序的这些部分:

  1. 用户经常以交替的方式一起使用(首先做某事,然后在第二个,然后在第一个做两件事等)
  2. 他们占据了很小的屏幕空间。

在标准的服务器端应用程序中,我们假设我们可以创建一个新的仪表板控制器/视图,并在其他两个控制器中以某种方式真实地处理所有事情并显示结果。关键是——组合不会改变“第一”和“第二”控制器或视图

我想做同样的事情,只在 Ember 中。我创建了这个 JSBIN来说明这个问题。

我知道两个现有的解决方案:

  1. 仅使用现有模型(上面链接的 jsbin 中的解决方案) - 这种方法的问题很明显 - 未使用视图。
  2. 使用组件方法——我认为这不太合适,因为这些不是通用的、可重用的组件,并且应该能够独立运行。

对我来说,一个理想的方法是使用{{view}}帮助程序以某种方式调用视图,但也传递控制器数据。(我已经在这个 jsbin中尝试过,但似乎无法让它处理来自控制器的数据或正确设置路由模型)。

4

1 回答 1

1

在我看来,您将需要使用 {{render}} 助手

App.CompositeRoute = Ember.Route.extend({
  model: function(){
    return {
      first: this.modelFor('first'),
      second: this.modelFor('second')
    };
  }
});

在复合材料的车把模板中

{{render "first" model.first}}
{{render "second" model.second}}

祝你好运

于 2013-11-05T15:13:47.807 回答