我正在尝试使用集合视图,并且在每个项目视图中都使用了handlerbars帮助程序,但我无法使用帮助程序函数将我的路径扩展为值。
Ember.CollectionView.create({content: App.AController,
itemViewClass: App.ItemView
});
Em.Handlebars.registerHelper('editable', function (path, options) {
options.hash.valueBinding = path;
return Em.Handlebars.helpers.view.call(this, App.EditField, options);
});
<script type="text/x-handlebars" data-template-name="edit-field">
{{#if isEditing}}
{{view Ember.TextField valueBinding = "value" propagatesEvents = true}}
{{else}}
{{#if value}}
{{value}}
{{else}}
<span class="no-name">empty</span>
{{/if}}
{{/if}}
</script>
<script type="text/x-handlebars" data-template-name="item-view">
{{view.content.name}}
{{editable view.content.name}}
</script>
答案 0 :(得分:3)
“isEditing”属性位于视图上,但collectionView itemView的上下文是该视图的内容。要在模板中引用视图中的属性,您必须使用“view”启动属性路径,如“view.isEditing”。
我在你的小提琴中做了这个改变,这个例子看起来像我期望的那样工作。