繁体   English   中英

带角表达式的AngularJS ng-if

[英]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"
      }
    ];
 });

如何在angularJS表达式中使用ng-if或是否有其他方法可以实现此目标? 如果我的loggingOnUser等于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的条件本身是一个角度表达式。

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

因此类似:

ng-if="someVal"

将匹配$ scope.someVal,而不是字符串“ someVal”
所以在你的情况下应该是:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM