0

アイテムを含むアプリケーションがあります。アイテムの値のリストにチェックボックスを表示したいと思います。

これを行うには、チェックボックスを使用します。

App.DisplayedValueCheckbox = Em.Checkbox.extend({
    itemValuesBinding: 'parentView.item.values',

    checked: function () {
        return true; //Default value is always true
    }.property('content', 'itemValues.@each'),

    click: function (evt) {
       //update graph
     }
});

そして、それをコレクションビューに表示してみてください:

App.DisplayedValuesView = Em.CollectionView.extend({
    contentBinding: 'App.Item.values'
    ,itemBinding: 'App.Item'
    , tagName: 'ul'
    , itemViewClass: Em.View.extend({
        itemBinding: 'parentView.item'
        , templatename: 'displayed-values'
    })
});

これは親ビューの一部です:

   <script type="text/x-handlebars" id="item">
    <h1>{{name}}</h1>
    <hr><p>{{desc}}</p>
        <div>
            <div>
                {{#each item in values}}
                <li>{{item}}</li>
                {{/each}}
            </div>
            <div>{{view App.DisplayedValuesView}}</div>
        </div>
    </script>

しかし、ビューにはチェックボックスが表示されず、エラーが発生します:

Unable to find view at path 'App.DisplayedValuesView'

編集: @ sly7_7の回答により、このエラーは修正されました

これがこの問題のjsFiddleです

私は何かが恋しいことを知っていますが、何ですか?

バインディングに何か (どのように機能するかわかりません) ?

特定の Route() を書くべきApp.ItemRoute = ...ですか?

チェックボックスビューを定義していますか? テンプレート?

4

1 に答える 1

1

間違いは、アプリをローカル変数として宣言することです。アプリケーション名前空間からビューを参照する場合、Ember/Handlebars ヘルパーにはグローバルが必要です。したがって、Appの前にある「var」を削除してください:)

于 2013-04-30T12:23:08.580 に答える