我有一个控制器,我在页面上显示一个列表。我必须根据其中的一些标志消除一些列表项。所以我编写了一个简单的函数,它将返回一个布尔值,并将在ng-show指令中使用该值来隐藏项目。在ng-repeat块中多次调用该函数。我的理解是,如果我的数组长度是n,那么除非更改数组内容/长度,否则函数应该被调用n次。
display = function(item)
{
if(item.flag)
return true
else
return false;
}
我的显示功能看起来像这样
<form id="myForm">
Uporabniško ime: <input id="firstName" name="firstName" type="text" /><br>
Geslo: <input id="pass" name="pass" type="text" /><br>
<input type="button" value="Submit"
onClick="google.script.run.withSuccessHandler(DataSaved).processForm(this.form)"
/>
</form>
<div id="Message"></div>
答案 0 :(得分:1)
我将尽力确保任何函数调用都在控制器范围内
即。 $ scope.display但是,以下内容可能有助于使其更清晰。
<!-- iterate elements in items, ie. {name: "a", flag: true} -->
<ul>
<li ng-repeat="item in items" ng-show="item.flag">{{item.name}}</li>
</ul>
并且没有函数调用,因此,ng-show从item.flag中读取布尔值
$scope.items = [
{name: "a", flag: true},
{name: "b", flag: true},
{name: "c", flag: false}
];
,输出为..
a
b
希望这有帮助。
答案 1 :(得分:0)
您可以使用Angular的内置filter
过滤器:
<li ng-repeat="item in items | filter: { flag: true }">{{item.name}}</li>