Ember:嵌套资源的对象解析



我最近开始使用Ember.js和Ember-CLI,我非常兴奋。但有些事情我不清楚。

这是我的路由器:

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

但意料之中 my-app/pods/authenticated/chats/index/view

为什么错过了"身份验证"?

经过身份验证的路由不会应用于 url,因为您已将其 url 分配给根:{ 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() {
        ...
    });
    ...
});

我希望这对你有所帮助。

相关内容

  • 没有找到相关文章

最新更新