关于Ember资源与路线的混淆

时间:2015-06-07 23:42:48

标签: javascript ember.js

我一直在阅读Ember CLI 101以了解资源/路线的区别,但我无法理解下面的情况:

我使用ember-cli创建了一个新项目并运行:

ember g resource testme --pod

ember g route testme/testresource --pod

然后,我添加了testme/template.hbs更改为:

This is test me1.
{{outlet}}

并将testme/testresource/template.hbs更改为

This is the test resource .

{{outlet}}

路线看起来像

  this.resource('testme', function() {
    this.resource('testresource', function() {});
  });

为什么导航到

的情况

http://localhost:4200/testme/testresource

仅提供

This is test me1. 

而不是

This is test me1. This is the test resource .

如果我将testresource更改为route,我会得到两个句子。如果testresourceresource,为什么我不能同时获得这两项?如果第二个模板没有渲染,那么它的重点是什么?

作为参考,我的依赖关系如下:

"jquery": "^1.11.1",
"ember": "1.10.0",
"ember-data": "1.0.0-beta.15",

1 个答案:

答案 0 :(得分:4)

资源有自己的命名空间,资源下的路由在它们上面的资源下面命名空间。

当Ember解析testresource模板时,它遵循此模式。如果它是路由器中的resource,它将查找名为testresource的模板。如果它是路由器中的route,则会查找resource/route,即testme/testresource