我想使用ng-if
调用函数来获取文本数据,但是我不知道为什么ng-if
不起作用,它会打印所有文本数据。请帮忙。非常感谢。
我尝试仅使用ng-if
是可行的
http://jsfiddle.net/grm7cy2x/1/
这是使用ng-if
调用功能的代码
答案 0 :(得分:0)
原因是您从checkValidDataType
返回的内容被视为字符串,不再将其视为一段代码。换句话说,是这样的:
< ... ng-if="'data.partment == 2 || data.partment == 3 '">
(请注意此处的单引号)
要更好地理解它,您可以尝试类似的
< ... ng-if="'cat'">
JavaScript中任何非空字符串都是true,因此从函数返回的字符串始终返回true(就像字符串'cat'
一样,这就是ng-if渲染每个单选按钮的原因。
为了解决这个问题,您可以这样编写代码:
<div ng-repeat="data in records">
<div ng-if="checkValidDataType(1, data)">
<input type="radio" name="{{data.name}}" value="{{data.value}}">
{{data.text}}
</div>
</div>
$scope.checkValidDataType = function(someValue, data){
if(someValue == '1')
return data.partment == 1 || data.partment == 2;
else if(someValue == '2')
return data.partment == 1 || data.partment == 3;
else
return data.partment == 2 || data.partment == 3;
}