Ember:对象解析嵌套资源

时间:2015-01-16 20:09:31

标签: ember.js ember-cli ember-cli-pods

我最近开始在Ember-CLI中使用Ember.js,我非常兴奋。 但有些事情对我来说并不清楚。

这是我的路由器:

this.resource("authenticated", { path: '/' }, function() {
  this.resource("contacts", function() {
    this.resource("contact", { path: ':id' });
  });

  this.resource("chats", function() {
    this.resource("chat", { path: ':id' });
  });

  this.resource("settings", function() {
    this.resource("setting", { path: ':id' });
  });
});

问题是 - 为什么在第二次嵌套'解析器'之后开始在'经过验证的'资源之外找到对象?

例如

my-app/pods/chats/index/view

但是预料到了     我的应用内/荚/验证/聊天/索引/视图

为什么'认证'错过了?

1 个答案:

答案 0 :(得分:0)

您在网址中未应用经过身份验证的路由,因为您已将其分配给根目录:{ path: '/'}

您应该将路径更改为“经过身份验证的”'或者将它们全部一起删除:

this.resource("authenticated", function() { ... });

但是,现在,当用户导航到my-app/pods/authenticated时,经过身份验证的呈现。如果您仍希望将身份验证呈现为索引,则应为嵌套资源添加前缀:

this.resource("authenticated", { path: '/' }, function() {
    this.resource("contacts", { path: '/authenticated/contacts' }, function() {
        ...
    });

    this.resource("chats", , { path: '/authenticated/chats' }, function() {
        ...
    });

    ...
});

我希望这对你有所帮助。