AngularJS ng-if具有角度表达式

时间:2015-09-22 13:52:13

标签: angularjs angularjs-scope angularjs-ng-repeat angular-ng-if

查看:

<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

提前致谢

2 个答案:

答案 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"