我一直在阅读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
,则会得到两个句子。如果testresource
是resource
,为什么我都没有得到?如果没有渲染第二个模板有什么意义?供参考,我的依赖项如下所示:
"jquery": "^1.11.1",
"ember": "1.10.0",
"ember-data": "1.0.0-beta.15",
最佳答案
资源具有自己的名称空间,资源下方的路由在资源上方的名称下方有名称空间。
当Ember解析testresource
模板时,它遵循此模式。如果它是路由器中的resource
,它将查找名为testresource
的模板。如果是路由器中的route
,它将查找resource/route
,即testme/testresource
。