1

我需要从 {{#each content.activitytypes}} 我尝试过的 {{_parentView.showAlias}} 中触发 {{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'),
});
4

1 回答 1

3

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

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

于 2012-05-30T01:49:16.377 回答