使用AngularJS同步两个数组中的数据

时间:2015-12-15 15:09:18

标签: javascript angularjs ngtable

我正在使用AngularJS(使用ng-table)生成两个数组,我希望它们能够同步。例如,我在两个表中都有[A,B,C]值,如果我用“A”过滤第一个,我也只想在第二个中使用[A]。

问题似乎是两个表的 $ scope 不一样(即使它们在同一页面中),因此数据在它们之间并不常见。所以我试图强制控制器与nb-controller

相同
<table ng-table="tableParams" ng-controller="myController" id="tableA">
[...]
</table>
<table ng-table="tableParams" ng-controller="myController" id="tableB">
[...]
</table>

但不幸的是它不起作用......

这是我的控制器的摘录:

var data = ['A','B','C'];

$scope.tableParams = new ngTableParams({
  page : 1, // show first page
  count : 15, // count per page
  filter : {
    filter_dict : '{}',
  },
  sorting : {
    id : 'asc',// initial sorting
  }
},
{
  counts: [15, 30, 50, 100],
  total : $rootScope.data.length, // length of data
  getData : function($defer, params) {
    $defer.resolve(data.slice((params.page() - 1) * params.count(),  params.page() * params.count()));
  },
  $scope:$scope
});

你知道我该怎么做吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

正如我在评论中提到的,您应该能够将两个表包装在同一个ng-controller中并绑定到同一个表实例,如此类codepen所示。

<div ng-controller="myController">
    <table ng-table="tableParams" id="tableA">
        [...]
    </table>
    <table ng-table="tableParams" id="tableB">
        [...]
    </table>
</div>