【发布时间】:2015-05-26 16:22:04
【问题描述】:
我正在尝试添加一个内联 Angular 过滤器,该过滤器通过计算结果为真或假的表达式进行过滤。这是我的 JS:
angular.module('programApp', [
'programApp.controllers',
]);
angular.module('programApp.controllers', [])
.controller('programController', ['$scope', '$filter',
function($scope, $filter){
$scope.advancedFilters = 1;
$scope.bars = [
{'name':'First',
'id':1},
{'name':'Second',
'id':2},
{'name':'Third',
'id':3},
{'name':'Fourth',
'id':4},
{'name':'Fifth',
'id':5}];
}]);
这是我的 HTML:
<div ng-app="programApp" ng-controller="programController">
<label>Level:
<select ng-model="advancedFilters">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</label>
<div ng-repeat="bar in bars | filter:advancedFilters <= bar.id">
<h3>{{bar.name}}</h3>
</div>
</div>
您可以看到我是如何尝试根据 advancedFilters 下拉列表中的内容过滤栏 ng-repeat 的。但是,当我尝试向 ng-repeat 添加一个评估为真或假的过滤器时,我会抛出一个角度错误。
我想避免在这种情况下创建自定义函数。如果可能,过滤器应保持在 HTML 中。
这看起来很简单,但它不起作用。我在这里做错了什么?
【问题讨论】:
-
在这种情况下,您似乎无法避免控制器。
-
我担心会是这样。不过,这似乎是您应该能够内联做的事情。
-
其实你可以。检查我的答案。
标签: javascript angularjs expression angularjs-filter