EmberJS - 如何从嵌套{{#each}}内部调用view方法

时间:2012-05-29 17:53:16

标签: ember.js

我需要在{{#each content.activitytypes}}中触发{{showAlias}}视图方法,我已尝试{{_parentView.showAlias}}。我相信我需要在父母的父母那里打电话,这是正确的,怎么样?我可以在{{#each ...

之外调用{{showAlias}}

把手模板

    <script type="text/x-handlebars">
    <h2>Activities</h2>
    <ul>            
        {{#each Km.activityController}}
        {{#view Km.ActivityView contentBinding="this"}}
            <li>
                {{content.id}}:{{content.name}}
                <ul>
                {{#each content.activitytypes}}
                    <li>{{showAlias}}
                        {{name}} {{aliasname}}
                    </li>
                {{/each}}
                </ul>
            </li>
        {{/view}}   
        {{/each}}
    </ul>
</script>

查看

Km.ActivityView = Em.View.extend({

showAlias: function () {
    var arr = this.getPath('content.activitytypes'),
        show = false;
        console.log(arr)
        arr.forEach(function(item) {
            var aliasArr = item.showaliasaccountid;
            if (typeof aliasArr !== 'undefined') {
                if (jQuery.inArray(2,aliasArr)) {
                    console.log(aliasArr);
                    show = true;
                }
            }
        });
}.property('content.@each.activitytype.@each'),
});

1 个答案:

答案 0 :(得分:3)

{{parentView.showAlias}}可以工作,但是在这些嵌套视图和子视图的情况下,我总能找到使用CollectionViews更易于维护的代码。否则,最终会在单个模板/视图中填充太多内容。

http://docs.emberjs.com/#doc=Ember.CollectionView&src=false