Javascript AngularJS ng repeat筛选器在硬编码时工作,但在作为控制器变量传递时不工作

Javascript AngularJS ng repeat筛选器在硬编码时工作,但在作为控制器变量传递时不工作,javascript,html,angularjs,angularjs-ng-repeat,Javascript,Html,Angularjs,Angularjs Ng Repeat,因此,我想制作一个下拉菜单,更改ng repeat的筛选值,如下所示: <div ng-repeat="{{filter}}"> 我可以验证{{filter}}是否会吐出字符串,但是如果将该字符串作为双括号变量给定,则ng repeat不起作用,只有在硬编码时才起作用。您不能将角度控制器变量传递给其他角度函数,如ng repeat吗?为什么不简单地将服务注入控制器并在那里进行过滤呢。您可以简单地在控制器中过滤LAGS,如下所示: $scope.filteredLangs = $

因此,我想制作一个下拉菜单,更改ng repeat的筛选值,如下所示:

  <div ng-repeat="{{filter}}">
我可以验证{{filter}}是否会吐出字符串,但是如果将该字符串作为双括号变量给定,则ng repeat不起作用,只有在硬编码时才起作用。您不能将角度控制器变量传递给其他角度函数,如ng repeat吗?

为什么不简单地将服务注入控制器并在那里进行过滤呢。您可以简单地在控制器中过滤LAGS,如下所示:

$scope.filteredLangs = $filter('filter')($scope.langs, {type:'Interpreted'});
然后,您可以通过指令重复过滤后的LAGS:

<div ng-repeat="lang in filteredLangs">
他认为:

<div ng-repeat="lang in langs | filter: {type: myType}">


ng repeat=“filter”
不起作用吗?ng repeat已经解析了变量,因此不需要大括号
{}
,您可以在非ng属性中使用大括号,如
class=“{{cond?'black':'white'}”
为什么不直接将表达式放在指令中呢。这更具可读性。记住:AngularJS允许您为应用程序扩展HTML词汇表。由此产生的环境具有非凡的表现力、可读性和快速开发能力。目前,如果不查看控制器内部,很难看到您的指令在做什么。变量名至少要更具语义。@Ananth关于括号的说法是对的,但这不起作用。@cnorthfield,因为它将被分配给一个由控制器中的函数确定的变量,因此最终结果将是一个下拉菜单来更改过滤器
$scope.myType = "Interpreted";
<div ng-repeat="lang in langs | filter: {type: myType}">