AngularJS ng-if with angular 表达式

AngularJS ng-if with angular expression

查看:

<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

提前致谢

应该是

ng-if="user.name == loggedOnUser"

而不是

ng-if="user.name == {{loggedOnUser}}"

如果需要,您可以使用 filters。但我建议你不要相信你的情况下的过滤器。请参阅下面的代码片段,它将适用于您的上述场景。

<div ng-repeat="user in users | filter:name:loggedOnUser">

ng-if 的条件是 angular 表达式本身。

<ANY
    ng-if="expression">
    ...
</ANY>

因此类似于:

ng-if="someVal"

将匹配 $scope.someVal 而不是字符串 "someVal"
所以你的情况应该是:

ng-if="user.name == loggedOnUser"