我有一个带有项目的应用程序。 我想显示项目中值列表的复选框。
我使用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的回答
我知道我错过了什么,但是什么?
绑定中的某些内容(我不确定它们是如何工作的)?
我应该写一个特定的路线(App.ItemRoute = ...
)吗?
定义复选框视图?模板?
答案 0 :(得分:1)
错误在于您将App声明为本地var。当您想要从应用程序命名空间引用视图时,Ember / Handlebars帮助程序需要全局。 所以只需在App:)之前删除'var'。