我想使用ng-repeat
生成元素,但只想显示某些$ scope.activeMod是否等于item的值,这里我是如何尝试但不工作。在activeMod中,值为mod1,但显示所有列表项。
HTML代码
<li ng-show="{activeMod == item.menu-mod}" ng-repeat="item in menu" ng-if="item.title != 'Home'">
<a ng-href="{{item.href}}" class="{{item.className}}">{{item.title}}</a>
</li>
这是菜单json
{
"title": "System",
"menu-mod": "mod1",
"className": "system-icon",
},
{
"title": "Settings",
"menu-mod": "mod2",
"className": "settings-icon",
},
{
"title": "Configs",
"menu-mod": "mod3",
"className": "config-icon",
}
答案 0 :(得分:1)
试试这个;
<li ng-repeat="item in menu" ng-show="activeMod == item['menu-mod']" ng-if="item.title != 'Home'">
<a ng-href="{{item.href}}" class="{{item.className}}">{{item.title}}</a>
</li>
希望在您的控制器中声明activeMod
。
答案 1 :(得分:1)
在ng-repeat声明中使用过滤器。
<li ng-repeat="item in menu | filter: filterFunction" [...] etc.
并在控制器中:
$scope.filterFunction = function(item){
if(item.menu-mod === $scope.activeMod) {return true;}
return false;
}
有关过滤器的详细信息: