查看:
<html ng-app="myApp">
....
<body>
<div ng-controller="myCtrl">
<p>Current user {{loggedOnUser}}</p>
<div ng-if="user.name == {{loggedOnUser}}" ng-repeat="user in users">
<p>Should display</p>
</div>
</div>
</body>
</html>
控制器:
angular.module("myApp", [])
.controller("myCtrl", function($scope){
$scope.loggedOnUser = "xxx"; // for testing purpose
$scope.users = [
{
name : "xxx",
age: "25"
},
{
name : "yyy",
age: "26"
}
];
});
如何使用ng-if与angularJS表达式或有任何其他方法来实现这一点? 如果我的loggedOnUser等于user.name
,我想显示div提前致谢
答案 0 :(得分:6)
应该是
ng-if="user.name == loggedOnUser"
而不是
ng-if="user.name == {{loggedOnUser}}"
如果您愿意,可以使用filters
。但我建议你不要相信你的过滤器。请参阅下面的代码段,它将适用于您的上述方案。
<div ng-repeat="user in users | filter:name:loggedOnUser">
答案 1 :(得分:3)
ng-if的条件本身就是一个角度表达式。
<ANY
ng-if="expression">
...
</ANY>
因此像:
ng-if="someVal"
将匹配 $ scope.someVal ,而不是匹配字符串“someVal”
所以在你的情况下应该是:
ng-if="user.name == loggedOnUser"