Ember - 如何使用CollectionView显示与数组相关的复选框列表?

时间:2013-04-30 01:38:35

标签: ember.js

我有一个带有项目的应用程序。 我想显示项目中值列表的复选框。

我使用Checkbox执行此操作:

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 of this problem

我知道我错过了什么,但是什么?

绑定中的某些内容(我不确定它们是如何工作的)?

我应该写一个特定的路线(App.ItemRoute = ...)吗?

定义复选框视图?模板?

1 个答案:

答案 0 :(得分:1)

错误在于您将App声明为本地var。当您想要从应用程序命名空间引用视图时,Ember / Handlebars帮助程序需要全局。 所以只需在App:)之前删除'var'。