所以我想制作一个下拉菜单,改变ng-repeat的过滤值,如下所示:
<div ng-repeat="{{filter}}">
所以我在控制器中有这一行,现在是硬编码的
$scope.filter = 'lang in langs | filter:{type:\'Interpreted\'}';
我可以验证{{filter}}是否吐出了字符串,但是当将字符串作为双括号变量时,仅当它被硬编码时,ng-repeat不起作用。你能否通过角度控制器变量到其他角度函数,如ng-repeat?
答案 0 :(得分:0)
为什么不简单地将$filter
服务注入您的控制器并在那里进行过滤。你可以简单地在控制器中过滤你的语言,如下所示:
$scope.filteredLangs = $filter('filter')($scope.langs, {type:'Interpreted'});
然后您可以通过ngRepeat
指令重复过滤的lang:
<div ng-repeat="lang in filteredLangs">
请记住,ngRepeat
指令会评估表达式,因此您不需要像示例中那样使用花括号。
如果您只想更改过滤器中的类型,则只需更新控制器中的变量:
$scope.myType = "Interpreted";
在视图中:
<div ng-repeat="lang in langs | filter: {type: myType}">