1

我正在尝试使用集合视图,并在每个项目视图中使用处理程序栏助手,但我无法获得帮助函数来扩展我的路径到值。

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>

http://jsfiddle.net/epigeon/dNqsV/29/带有完整的代码示例。

4

1 回答 1

3

'isEditing' 属性在视图上,但 collectionView itemView 的上下文是该视图的内容。为了在模板中引用视图的属性,您必须以“view”开始属性路径,如“view.isEditing”。

我在你的小提琴中做了那个改变,这个例子似乎像我预期的那样工作。

于 2013-03-02T02:52:53.337 回答