在与 KO 一起度过了过去两年之后,我最近决定研究 Ember.js。首先要注意的是复杂性似乎更陡峭,但我会占上风:)
现在,我似乎需要为某个看起来很奇怪的模板对控制器进行硬编码:
App.IndexRoute = Ember.Route.extend({
renderTemplate: function() {
this.render('todosList', { into: 'application' });
}
});
App.todosController = Ember.ArrayController.create({
content: [App.Todo.create(), App.Todo.create()]
});
<script type="text/x-handlebars" data-template-name="application">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="todosList">
<ul id="todo-list">
{{#each todo in App.todosController.content}}
<li>
<label {{bindAttr class="todo.isCompleted"}}>{{view Ember.Checkbox checkedBinding="todo.isCompleted"}} {{todo.title}}</label>
<button {{action 'removeTodo' todo target="App.todosController"}}>Ta bort</button>
</li>
{{/each}}
</ul>
{{view Ember.TextField valueBinding="App.todosController.newTodoText"}}
<button {{action 'newTodo' App.todosController.newTodoText target="App.todosController"}}>New todo</button>
</script>
我尝试在 render() 调用中设置控制器:'App.todosController',但没有。视图中的 #each 除了 App.todosController.content 之外什么都不接受,这似乎不正确。为什么我什至需要明确声明它应该阅读的内容,不是自动设置的吗?
感谢您的帮助,Ember 似乎有其细微之处,但一开始很多东西令人困惑。