Javascript ember.js在每个帮助程序中使用itemController无法按预期工作
我应该如何更改以下代码以使其按预期工作,这样,如果我完成了一个TODO,就不会更改其他TODO的完整性 itemController=“todo”声称将每个项目包装在自己的控制器中,但未能这样做 index.htmlJavascript ember.js在每个帮助程序中使用itemController无法按预期工作,javascript,ember.js,handlebars.js,Javascript,Ember.js,Handlebars.js,我应该如何更改以下代码以使其按预期工作,这样,如果我完成了一个TODO,就不会更改其他TODO的完整性 itemController=“todo”声称将每个项目包装在自己的控制器中,但未能这样做 index.html <script type="text/x-handlebars" id="todos"> <ul> {{#each controller itemController="todo"}} <li>{{
<script type="text/x-handlebars" id="todos">
<ul>
{{#each controller itemController="todo"}}
<li>{{#link-to 'todo' this}}{{job}} -- {{#if isCompleted}}Completed{{else}}Incomplete{{/if}}{{/link-to}}</li>
{{/each}}
</ul>
{{outlet}}
</script>
<script type="text/x-handlebars" id="todo">
<p>Job: {{job}} -- {{#if isCompleted}}Completed{{else}}Incomplete{{/if}}</p>
<button {{action 'complete' controller}}>Complete</button>
</script>
我相信你是在混淆视听 1您在App.TodosRoute中有一个TODO列表,每个TODO都由自己的控制器支持,但在App.TodoRoute中,您有另一个todoController实例,因为该属性位于控制器级别,因此您正在查看为控制器的第四个实例设置的属性,该实例负责TodoRoute,即单实例 您可以将属性移动到模型中,一切都会顺利进行
App.TodoController = Ember.ObjectController.extend({
actions: {
complete: function() {
this.set('isCompleted',true);
}
}
});
var todos = [{id: '1', job: 'running',isCompleted: false}, {id: '2', job: 'swimming',isCompleted: false}, {id: '3', job: 'study',isCompleted: false}];
谢谢,把它弄清楚了。这意味着我不能使用这样的控制器属性?在我的场景中添加属性看起来不合逻辑。将坚持将其添加到模型tho。
App.TodoController = Ember.ObjectController.extend({
actions: {
complete: function() {
this.set('isCompleted',true);
}
}
});
var todos = [{id: '1', job: 'running',isCompleted: false}, {id: '2', job: 'swimming',isCompleted: false}, {id: '3', job: 'study',isCompleted: false}];