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'プロパティはビューにありますが、collectionViewitemViewのコンテキストはそのビューのコンテンツです。テンプレート内のビューのプロパティを参照するには、「view.isEditing」のように「view」でプロパティパスを開始する必要があります。

私はあなたのフィドルにその変更を加えました、そして例は私が期待するようにうまくいくようです。

于 2013-03-02T02:52:53.337 に答える