我试图为ng-table创建一个自定义指令。 在我的应用程序中,我有多次表“用户”。 我有一个显示所有用户的主表,我还有一些显示有限数量用户的自定义表。 这些表的自定义数据被创建到控制器中,并具有不同的名称(usersList1,usersList2等)。
表格相同(标题,列标签),只有内部数据发生变化。
我想要一个自定义指令并将要传递的数据传递给它。
这是我的代码:
.directive('tableForListingDirective', function () {
return {
restrict: 'EA',
scope: true,
template: [
'<table ng-table="tableParams" class="table table-striped table-bordered table-hover" template-pagination="custom/pager">',
'<tr ng-repeat="user in tableData">',
'<td width="30" style="text-align: left" header="\'ng-table/headers/checkbox.html\'"> <input type="checkbox" ng-model="user.checked" ng-change="toggleCheckedUserToAdd(user)"/>',
'<td data-title="\'Status\'" sortable="\'status\'">{{user.status}}</td>',
'<td data-title="\'Login\'" sortable="\'login\'">{{user.login}}</td>',
'<td data-title="\'Name\'" sortable="\'name\'">{{user.name}}</td>',
'<td data-title="\'Email\'" sortable="\'email\'">{{user.email}}</td>',
'</tr>',
'</table>'
].join(''),
link: function (scope, element, attrs) {
scope.tableData=scope.$eval(attrs.tableData);
},
}
});
调用html文件:
<table-for-listing-directive table-data="{{users}}"></table-for-listing-directive>
你可能会说,为什么我没把tableData:“=”放到范围内。 好吧,经过长时间的搜索后,我发现ng-repeat和scope {}不希望彼此合作,所以为了使ng-repeat在指令中工作,我不得不说'scope:true'
在ng-repeat内部,我尝试使ng-repeat="user in {{tableData}}"
无法正常工作。
答案 0 :(得分:0)
在您的HTML更改table-data="{{users}}"
中table-data="users"