如何在ember.js中重用/干掉这些路由

时间:2014-02-19 20:16:11

标签: javascript ember.js routes

我有这些路线

  this.resource('politicians'); 

  this.resource('politician', { path: '/politicians/:politician_id', function () {
    // Non nested interface so non nested politician route.

    this.resource('questions', function () {
      this.resource('question', { path: ':question_id' });
    });
  });

  this.resource('questions', function () {
    this.resource('question', { path: ':question_id' });
  });

我想在应用程序中的任何地方(使用模态)呈现问题路线而不会丢失当前上下文,但每个问题仍然有一个特定/唯一的网址,知道你从中得到的问题嵌套问题路由和非嵌套问题路径相同。

this.resource('question', { path: ':question_id' });

事情是,我不想为此制作一个定制的插座,因为那时我没有为每个问题提供网址。

2 个答案:

答案 0 :(得分:1)

这种问题最好通过使用query-params并基于params挂钩模式来解决。如果您不想这样做,那么如果您希望它是基于URL的,那么您真的很难在每条路线中构建问题。

以下是一个示例:http://emberjs.jsbin.com/ucanam/3566/edit

答案 1 :(得分:0)

您正在寻找的是Ember的{{render}}帮手。只需将{{render 'question' questionModel}}放在您想要使用的模态中。

您可以了解渲染助手here

编辑:

这是一个jsbin,用于显示如何以这种方式使用render标记的基本思想。这个jsbin以两种不同的方式呈现相同的模板;一旦使用渲染助手绑定到路径URL和一次。

jsbin here