这很奇怪。
我有以下表格指令:
/**
* Created by root on 8/4/16.
*/
angular.module('LBTable').directive('lbTable', ['tabService', function (tabService) {
return {
restrict: 'E',
roles: 'all',
templateUrl: 'js/helpers/LBTable/directives/lb-table/lb-table.html',
scope: {
tableData: '=',
tableFields: '=',
actionElement: '='
},
link: function (scope, element, attrs) {
scope.filterFields = [];
findFilterFields();
function findFilterFields() {
scope.tableFields.forEach(function (x) {
if (x.sortable == true) {
scope.filterFields.push(x.fieldKey);
}
});
}
}
}
}]);
这有以下html:
<table id="table-client" class="table table-responsive" >
<thead>
<tr>
<th ng-repeat="field in tableFields" translate="{{field.headerTitle | translate}}"></th>
<th class="text-right"
translate="TERMS.ADMINISTRATION" ng-if="actionElement != null"></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in tableData track by item.id">
<lb-table-element element-data="item" table-fields="tableFields"></lb-table-element>
</tr>
</tbody>
在此范围内,您可以看到另一个指令:lbTableElement
该指令如下所示:
/**
* Created by root on 8/4/16.
*/
angular.module('LBTable').directive('lbTableElement', ['tabService', function (tabService) {
return {
restrict: 'E',
roles: 'all',
replace: true,
templateUrl: 'js/helpers/LBTable/directives/lb-table-element/lb-table-element.html',
scope: {
elementData: '=',
tableFields: '='
},
link: function (scope, element, attrs) {
var data = scope.elementData;
}
}
}]);
并有以下html:
<td ng-repeat="field in tableFields">
{{elementData[field.fieldKey]}}
</td>
Nnow tableData
数组包含1240
个对象。但是当我运行时,没有显示数据。
但是,如果我重新格式化我的html看起来像这样:
<td> <lb-table-element element-data="item" table-fields="tableFields"></lb-table-element></td>
对象item
不再是undefined
,而是显示数据。
谁能告诉我为什么?
答案 0 :(得分:1)
在所有评论之后,我意识到是什么导致了你的麻烦。您需要通过将指令设置为属性而不是像这样的元素来修复它:
fgets()
然后,您可以重复指令中的数据,也可以在元素本身中重复数据。我担心没有其他解决办法。