Javascript ng重复使用范围函数返回值不调用函数
在自定义指令中,使用函数的返回值作为数组在ng repeat中进行迭代时遇到了一些问题 代码相当简单: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
.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>