2012-09-17 41 views
3

我試圖寫一個待辦事項應用程式,但我有我的複選框的問題就在開始......待辦事項應用程序不能正常工作

http://jsfiddle.net/LRQyv/

模板:

<script type="text/x-handlebars"> 
    {{view Todos.CreateTodoView id="new-todo" placeholder="What has to be done?"}} 
    {{#collection contentBinding="Todos.todosController" tagName="ul"}} 
     {{view Em.Checkbox titleBinding="content.title" valueBinding="content.isDone"}} 
    {{/collection}} 
</script>​ 

代碼:

window.Todos = Ember.Application.create(); 
Todos.initialize(); 

Todos.Todo = Ember.Object.extend({ 
    title: null, 
    isDone: false 
}); 

Todos.todosController = Ember.ArrayController.create({ 
    content: [], 
    createTodo: function(title) { 
     var todo = Todos.Todo.create({title: title}); 
     this.pushObject(todo); 
    } 
}); 

Todos.CreateTodoView = Ember.TextField.extend({ 
    insertNewline: function() { 
     var value = this.get('value'); 
     if (value) { 
      Todos.todosController.createTodo(value); 
      this.set('value', ''); 
     } 
    } 
});​ 

..any想法,爲什麼沒有標籤的地方補充說,當添加一個ToDo-Item?

回答

2

您的代碼有兩個問題,首先,您期待Ember.Checkbox允許綁定title。這是不可能的,如文檔中所述:

您可以在使用Ember.Checkbox的模板中自己添加label標籤。

第二,你必須看看Ember.js View Context changes。 您的綁定必須使用{{view.content.title}}{{view.content.isDone}}

下面是這個修改後的模板:

<script type="text/x-handlebars"> 
    {{view Todos.CreateTodoView id="new-todo" placeholder="What has to be done?"}} 
    {{#collection contentBinding="Todos.todosController" tagName="ul"}} 
     <label> 
     {{view Em.Checkbox labelBinding="content.title" valueBinding="view.content.isDone"}} 
     {{view.content.title}} 
     </label> 
    {{/collection}} 
</script>​ 

而且the associated JSFiddle

+0

yay ..謝謝!好像我查了一些過時的教程,其中沒有包括這些視圖上下文的變化.. – Ajuhzee