我正在尝试将NgTable与angularjs 1.5集成在基于组件的架构中(因此,没有旧式控制器)。
出现NgTable控件(过滤器,排序图标),但它们似乎根本不起作用,所以它们不会过滤而不会排序。
这是我的代码
--- activity-list-module.js ---
<div style="margin:20pt">
<h3>Manage Activities</h3>
<div style="margin:20pt">
<h3>Manage Activities</h3>
<div class="row" style="margin-left:20pt" >
<table id="myViewTable" ng-table="$ctrl.tableParams" class="table" show-filter="true" class="table actTable" style="width:95%;table-layout: fixed;" >
<tbody>
<tr ng-repeat="projectActivity in $ctrl.activitiesForm track by projectActivity.id">
<td data-title="'Id'">{{projectActivity.id}}</td>
<td data-title="'description'" filter="{ description: 'text'}" sortable="'description'">{{projectActivity.description}}</td>
</tr>
</tbody>
</table>
</div>
</div>
--- activity-list-component.js ---
<activity-list></activity-list>
--- activity.list.html ----
{{1}}
当然,使用另一页中的标记{{1}}来调用该组件。
我正在使用AngularJs 1.5.8和ng-table 3.0.1。
我做错了什么或者AngularJs&gt; = 1.5和ng-table之间存在不兼容性?
PS在最后一种情况下,我该怎么办? smarttable是否与AngularJs 1.5兼容?
答案 0 :(得分:2)
在ng-table GIT repo中引发了一个问题后,我从ng-table的创建者那里得到了一个工作示例,我可以看看。
关键在于使用控制器变量,而不是ng-table生成的$ data变量。 因此,在“新风格”的情况下组件问题解决了改变
<tr ng-repeat="projectActivity in $ctrl.activitiesForm track by projectActivity.id">
带
<tr ng-repeat="projectActivity in $data track by projectActivity.id">
对于&#34;旧式&#34;控制器它解决了改变
<tr ng-repeat="user in vm.data">
带
<tr ng-repeat="user in $data">
我不太喜欢这个解决方案,因为它增加了一种全局性,但它有效。
修改强>
它也可以使用
$ctrl.tableParams.data
(对于组件示例)和vm.tableParams.data
(对于Controller示例)让我感觉好多了。