Javascript 使用ng if有条件地显示元素

Javascript 使用ng if有条件地显示元素,javascript,angularjs,expression,Javascript,Angularjs,Expression,我试图在我的网页上显示一个表达式,但前提是变量存在 <ul class="nav navbar-nav navbar-right"> <li ng-if="displayUsername()">{{userTest}}</li> </ul> 所以现在我有 <ul class="nav navbar-nav navbar-right"> <li ng-if="displayUsername()">{{userTe

我试图在我的网页上显示一个表达式,但前提是变量存在

<ul class="nav navbar-nav navbar-right">
   <li ng-if="displayUsername()">{{userTest}}</li>
</ul>
所以现在我有

<ul class="nav navbar-nav navbar-right">
   <li ng-if="displayUsername()">{{userTest}}</li>
</ul>

该服务返回带引号的“null”值。尝试执行此操作的最佳方法是什么?

尝试
返回
值:

<ul class="nav navbar-nav navbar-right">
   <li ng-if="displayUsername()">{{userTest}}</li>
</ul>
$scope.displayUsername = function () {
    $scope.userTest = authService.getUsername();
    return $scope.userTest; 
}

为此,只需在var上运行ng if

<ul class="nav navbar-nav navbar-right">
   <li ng-if="displayUsername()">{{userTest}}</li>
</ul>
在控制器中,您只需声明变量:

<ul class="nav navbar-nav navbar-right">
   <li ng-if="displayUsername()">{{userTest}}</li>
</ul>
$scope.userTest = authService.getUsername();
然后,在你看来:

<ul class="nav navbar-nav navbar-right">
   <li ng-if="displayUsername()">{{userTest}}</li>
</ul>
<ul class="nav navbar-nav navbar-right">
   <li ng-if="userTest">{{userTest}}</li>
</ul>
  • {{userTest}

如果您的userTest为null,ng If将为false,否则它将为true,并且此变量将可见。

您的
$scope.displayUsername
不返回任何内容,因此它始终为
ng If='false'
函数不返回布尔值,它只为变量“userTest”设置一个值.
最佳方法
修复服务器返回null而不带引号的操作:服务返回一个带引号的“null”值,因此您的解决方案可能是错误的。即使服务器必须返回“null”而不是null,客户端也可以使用简单的if条件来修复它或任何其他东西来绕过它。我只是想用最简单的方法来解决他的问题。
<ul class="nav navbar-nav navbar-right">
   <li ng-if="displayUsername()">{{userTest}}</li>
</ul>