我有这个作为我的router.js。请注意,它没有应用程序路径:
import Ember from 'ember';
import config from './config/environment';
var Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('todos', { path: '/'});
});
export default Router;
当我点击主路径时,我看到我的application.hbs模板和todos.hbs模板已加载到插座中。这是我的application.hbs:
<section id="todoapp">
<header id="header">
<h1>todos header in application.hbs</h1>
</header>
{{outlet}}
</section>
<footer id="info">
<p>
Footer in application.hbs. Double-click to edit a todo
</p>
</footer>
为什么我的application.hbs会被加载?
我认为Ember知道也在我的路线文件夹中加载todos.js:
import Ember from 'ember';
export default Ember.Route.extend({
model() {
let todos = [
{
title: 'Learn Ember',
complete: false,
},
{
title: 'Solve World Hunger',
complete: false,
}
];
return todos;
}
});
这是我的todos.hbs模板:
<h2>Todos Template</h2>
<ul>
{{#each model as |todo|}}
<li>
{{todo.title}}
</li>
{{/each}}
</ul>
主要问题
1.为什么我的application.hbs在我到达主路线时会被加载?
2.什么是出口违约的意思?
3.什么是线条导入Ember来自&#39; ember&#39;在做什么?在哪里&#39; ember&#39;来自(哪里?
答案 0 :(得分:1)
应用程序路由加载到每个Ember.js应用程序中。请参阅http://guides.emberjs.com/v2.1.0/routing/defining-your-routes/#toc_the-application-route
export default是ES6模块规范的一部分。请参阅http://exploringjs.com/es6/ch_modules.html当将该模块导入另一个模块时,将对象或变量作为要导入的默认值返回。
&#39; ember&#39;命名空间内置于Ember CLI中。它的默认导出本身是Ember变量,它曾经是以前版本的Ember中的全局变量。