首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS ES6用户界面-网格指令范围,ng-单击“不工作”

AngularJS ES6用户界面-网格指令范围,ng-单击“不工作”
EN

Stack Overflow用户
提问于 2015-10-21 06:55:09
回答 1查看 756关注 0票数 2

我有一个带有angularJS和ES6的链式指令,并且希望使用ui网格。网格中显示了正确的列和数据,这很好。

但ng-点击不工作在cellTemplate。什么都没发生。另外,我尝试用console.log(网格)检查网格对象,网格是未定义的。

我可以使用cellTemplate来调用openDetail方法吗?

代码语言:javascript
复制
export default function ChainsDirective() {
    class ChainsDirective {

        /*@ngInject*/
        constructor(chainsService, $state) {
            this.chainsServiceLoadChains = chainsService.loadChains.bind(chainsService);
            this.gridOptions = {
                enableColumnMenus: false,
                columnDefs: [
                    {
                        name: 'id',
                        visible: false
                    },
                    {
                        name: 'name',
                        displayName: 'Kette',
                        cellTemplate: '<div class="ui-grid-cell-contents"><a onclick="console.log(grid)" ng-click="grid.appScope.openDetail(row.entity.id)">{{row.entity.name}}</a></div>'
                    }
                ]
            };
            this.$stateGo = $state.go.bind($state);
            this.fetch(); // best practice initiales laden in einer Funktion zu kapseln
        }

        /**
         * @param int chainId
         */
        openDetail(chainId) {
            this.$stateGo('chainDetail', {chainId})
        }

        fetch() {
            return this.chainsServiceLoadChains().then(data => {
                this.gridOptions.data = data;
            })
        }
    }

    return {
        restrict: 'E',
        template: '<div ui-grid="chains.gridOptions" external-scopes="$scope" class="grid"></div>',
        scope: {},
        bindToController: {},
        controller: ChainsDirective,
        controllerAs: 'chains'
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-21 07:01:45

我从来没有使用过ui网格指令。但是您似乎需要使用它的名称来访问控制器,因为您已经用“控制器作为”语法声明了它。

因此,在您的ng-click中,您需要引用范围上的控制器,其名称为chains

代码语言:javascript
复制
ng-click="grid.appScope.chains.openDetail(row.entity.id)"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33252810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档