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 回答