3

ToDo-Appを作成しようとしましたが、最初にチェックボックスに問題があります...

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', '');
        }
    }
});​

..ToDo-Itemを追加するときに、ラベルが追加されない理由はありますか?

4

1 に答える 1

2

コードには 2 つの問題があります。まず、バインドEmber.Checkboxを許可することを期待しています。titleドキュメントで説明されているように、それは不可能です:

labelEmber.Checkbox が使用されているテンプレートに自分でタグを追加できます。

次に、 Ember.js View Context changesを確認する必要があります。バインディングは and を使用する必要が{{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>​

および関連する JSFiddle

于 2012-09-17T12:43:01.453 に答える