4

私の Handlebars ファイルは次のようになります。

{{#each book in view.bookcase}}
  {{view App.BookView classBinding="book.read:read:unread"}}
{{/each}}

現在の本の IDに属性を追加したいのですbook-id="1"が、方法がわかりません。これを試したら…

{{#each book in view.bookcase}}
  {{view App.BookView book-id="book.id" classBinding="book.read:read:unread"}}
{{/each}}

...その後、属性は文字通り「book.id」に設定されます。何か案は?

4

1 に答える 1

5

うーん、最初はこの投稿この投稿attributeBindingsに従って使用が許可されていると思いましたが、それを実行しようとすると、次のエラーが発生します:

Uncaught Error: assertion failed: Setting 'attributeBindings' via Handlebars is not allowed. Please subclass Ember.View and set it there instead.

ですから、今の最良の方法は、代わりにクラスでそれを行うことだと思います。

ハンドルバーテンプレート:

<script type="text/x-handlebars">
    {{#each book in view.bookcase}}
        {{view App.BookView classBinding="book.read:read:unread" contentBinding="book"}}
    {{/each}}
</script>

拡張クラス:

App.BookView = Ember.View.extend({
    attributeBindings: ['book-id'],
    'book-id': function() {
        return this.content.id;
    }.property('content.id')
});

例:jsFiddleスニペット

于 2013-02-16T08:54:18.043 に答える