Angular.js - 使用过滤器来改变变量

时间:2013-04-10 01:28:38

标签: angularjs

这听起来很简单,但谷歌搜索正在成为王牌。我有一个包含多个类别的下拉列表选择:

<select ng-model="orderProp" >
  <option ng-repeat="cats in categories" value="{{cats}}">{{cats}}</option>
</select>

我还有一张地图,使用Angular Google Maps,它使用JSON数据绘制标记。这些标记的数据称为$scope.markersProperty

当用户使用选择框时,我想动态更改markersProperty的值。使用Angular的HTML {{}}我可以通过简单的方式得到我想要的结果:

{{markersProperty|filter:orderProp}}

但我不能为我的生活弄清楚如何获得更新数组$scope.markersProperty的类似功能。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果您的意思是想要更新范围变量,那么您可以使用$filter服务:

.controller('MainCtrl', function ( $scope, $filter ) {
  $scope.markersProperty = // ...

  $scope.$watch( 'orderProp', function ( val ) {
    $scope.filteredMarkersProperty = $filter('filter')($scope.markersProperty, val);
  });
});