2015-05-13 64 views
1

我試圖在我的網頁上顯示一個表達式,但只有當變量存在時纔會顯示。有條件地顯示元素與ng-if

所以此刻我有,

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

,並在我的控制器我有,

$scope.displayUsername = function() { 
    $scope.userTest = authService.GetUsername(); 
} 

服務返回的「空」與報價的值。試圖做到這一點的最佳方式是什麼?

+3

你的'$ scope.displayUsername'不返回任何內容,所以它始終是'ng-if ='false'' – Grundy

+1

該函數不返回布爾值,它只是爲變量「userTest」設置一個值。 – oBo

+0

'最好的辦法'修復服務器,它返回_null_沒有引用 – Grundy

回答

3

要做到這一點,你可以簡單地如果異常 - 在您的變種運行。

在你的控制器,你只需要聲明的變量:

$scope.userTest = authService.getUsername(); 

,然後在您的視圖:

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

如果您userTest爲null,NG-如果會是假的,否則它將是真實的,這個變量將是可見的。

+0

從OP:_service返回一個值爲「null」quotations_,所以你的解決方案可能是錯的 – Grundy

+0

那麼,即使服務器必須返回「null」而不是null ,客戶可以使用一個簡單的條件來解決它或任何其他事情通過這個。我只是在最簡單的問題上解決了他的問題。 –

0

嘗試return值:

$scope.displayUsername = function() { 
    $scope.userTest = authService.getUsername(); 
    return $scope.userTest; 
}