Ember中是否存在简短或相对链接?

时间:2016-03-09 20:37:06

标签: ember.js

我在Ember中制定了一个有很多嵌套路线的想法。

让我们说我的路线是simulator.scenario.alien-invasion.situation.in-the-woods.something-else.etc

到达那条路线的唯一方法是:

{{$link-to 'simulator.scenario.alien-invasion.situation.in-the-woods.something-else.etc'}}
  <span>Next</span>
{{/link-to}}

或者是否有某种方式可以知道我已经在树林里?#34;然后以某种方式让路线相对?

(我真的不会有这么深的路线,但它提出了这个问题。:)

2 个答案:

答案 0 :(得分:6)

您可以使用resetNamespace

引用文档:http://emberjs.com/api/classes/Ember.Router.html#method_map

  

resetNamespace:默认为false;当筑巢路线时,余烬会   组合路由名称以形成完全限定的路由名称   与{{link-to}}一起使用或手动转换为路线。设置   resetNamespace:true将导致路由不从其继承   父路线的名称。这对于可以的资源来说很方便   在多个地方访问以及防止极长路线   名。请记住,实际的URL路径行为仍然存在   保留

App.Router.map(function(){
  this.route('simulator', function() {
    this.route('scenario', function() {
      this.route('alien-invasion', function() {
        this.route('situation', function() {
          this.route('in-the-woods', { resetNamespace: true } function() {
            this.route('something-else');
          });
        });
      });
    });
  });
});

然后您应该可以使用相对链接,例如:

{{#link-to "in-the-woods.something-else"}}Link Name{{/link-to}}

无论你身在何处。

这是一个关于路由嵌套的非常有用的讨论: http://alexspeller.com/embercamp-london-talk-routing/

答案 1 :(得分:1)

我认为没有。 The documentation对此非常全面,并没有提及。浏览链接到组件代码并将其跟回路由器也不会指示它。