Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ng重复使用范围函数返回值不调用函数_Javascript_Angularjs_Angularjs Directive_Angularjs Ng Repeat - Fatal编程技术网

Javascript ng重复使用范围函数返回值不调用函数

Javascript ng重复使用范围函数返回值不调用函数,javascript,angularjs,angularjs-directive,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Directive,Angularjs Ng Repeat,在自定义指令中,使用函数的返回值作为数组在ng repeat中进行迭代时遇到了一些问题 代码相当简单: .directive('treeRow', [function () { return function createDirective() { var treeController; return { restrict: 'E', require: '^treeGrid', sco

在自定义指令中,使用函数的返回值作为数组在ng repeat中进行迭代时遇到了一些问题

代码相当简单:

.directive('treeRow', [function () {
    return function createDirective() {
        var treeController;
        return {
            restrict: 'E',
            require: '^treeGrid',
            scope: {
                row: '='
            },
            templateUrl: 'components/treegrid/templates/row.html',
            link: function (scope, element, attrs, gridController) {
                treeController = gridController;
            },
            controller: function ($scope) {
                $scope.getColumnDefinitions = function () {
                    return treeController.getColumnDefinitions();
                };
            }
        };
    }();
}]);
模板:

<tr>
    <td ng-repeat="column in getColumnDefinitions()">{{row[column.key]}}</td>
</tr>
使用ng init将返回值分配给临时变量也不会调用该函数

将数据直接添加到作用域也不起作用:

link: function (scope, element, attrs, gridController) {
    treeController = gridController;
    scope.columnDefinitions = gridController.getColumnDefinitions();
},
本指令是另一个ng repeat的一部分,用作:

<tree-row ng-repeat="row in data" row="row"></tree-row>
使用angular.js 1.3.*

欢迎提供任何建议/提示,
谢谢:)

您是否尝试使用
require:true
作为指令?还是希望
元素在那里?
替换:true
。这就是@Ian的意思,但不幸的是,现在是了(还有,令人惊讶的是)。@Blackhole,天哪,我疯了。我不知道为什么键入了
require
。我不敢相信它被弃用了,我不知道!
<tree-row ng-repeat="row in data" row="row"></tree-row>
<tr>
    <div ng-repeat="column in getColumnDefinitions()">{{ row[column.key] }}</div>
</tr>