无法使NgTable与AngularJs 1.5一起使用

时间:2017-02-06 16:29:42

标签: javascript angularjs ngtable

我正在尝试将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之间存在不兼容性?

以下是cordova-plugin-dialogs

PS在最后一种情况下,我该怎么办? smarttable是否与AngularJs 1.5兼容?

1 个答案:

答案 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示例)让我感觉好多了。