【发布时间】:2017-04-25 20:03:50
【问题描述】:
我正在说明一个堆叠图及其表格,并使用 $http.get() 获取其 json 数据并将其设置为 $scope.dataset
html:
<input ng-model="_searchQuery.key1.key2">
<tr ng-repeat="(key, value) in dataset | filter:_searchQuery ">
我如何在控制器中更新$scope.dataset?
_searchQuery 匹配 dataset 并像魅力一样过滤我的表格。无需在控制器中编写任何代码。即dataset.key1.key2反映到_searchQuery.key1.key2
但是对于我的 nvd3.js 堆叠图,我必须在 DOM 中以相同的方式过滤 $scope.dataset。 $scope.dataset = $filter('$scope._searchQuery.key1.key2')($scope.dataset) 犯了一个错误。我关注 Angular 文档和此链接:How to use a filter in a controller?
【问题讨论】:
-
您有什么理由使用 interpolate 而不是仅仅将 $filter 注入控制器?
-
@Sasang 与过滤器的结果相同。有没有不使用 ng-change 并且每次都调用 $scope.apply 的干净方法?
-
你是直接使用nvd3库吗?如果是这样,请考虑使用 angular 指令:
angular-nvd3。在这种情况下,只需在接收/选择新数据时更改图形数据集,然后调用 nvd3 3 属性上的刷新方法:`$scope.api.refresh()`。您不需要在 ng-change 或使用 scope.apply 上触发任何内容 -
感谢指导。让我检查一下。
-
驾驶室你更新你的问题以包含更多代码,也许是一个基本的视图和控制器,所以我可以摆弄它。
标签: javascript angularjs filter angularjs-interpolate