2

我在Angularjs中遇到ng-show的問題。我有一個用戶可以輸入服務器主機名的文本框。在輸入此信息時,服務器的主機名將被髮送到後端系統,以驗證服務器是否存在。我目前在我的文本框中使用bootstrap,字體awesome和angularjs顯示加載圖標。當我收到來自服務器的響應時,我將isLoaded變量更改爲true,我希望加載圖標停止顯示。但是,這不會發生。無論該圖標首先設置爲何種狀態,它在此之後都不會改變。ng-show在angularjs上無法使用span

下面是我的問題的簡化版本。 Plunker Link Here

HTML

<form> 
     <div class="form-group has-feedback"> 
      <label for="server">Server:</label> 
      <input type="text" id="server" class="form-control" placeholder="server host name"> 
      <span ng-show="{{testVm.state}}" class="fa fa-spinner fa-spin form-control-feedback" aria-hidden="true"></span>   
      <button class="btn btn-primary" ng-click="testVm.turnOn()">Activate</button> 
      <button class="btn btn-primary" ng-click="testVm.turnOff()">Deactivate</button> 
     </div> 
     </form> 

角代碼:

angular 
    .module('test',[]) 
    .controller('TestController',TestController); 
function TestController() { 
    var testVm = this; 
    testVm.turnOn = turnOn; 
    testVm.turnOff = turnOff; 
    testVm.state = false; 
    function turnOn() { 
    testVm.state = true; 
    } 
    function turnOff() { 
    testVm.state = false; 
    } 

任何幫助表示讚賞。謝謝。

+0

您需要使用'NG-show'爲'NG秀= 「myVar的」',沒有大括號。檢查你的Chrome控制檯,它必須已經拋出一個錯誤! – Sayed

回答

3

您正在使用ng-show錯誤的方式。你不需要雙花括號,因爲你沒有評估變量的字符串值。

<span ng-show="testVm.state" class="fa fa-spinner fa-spin form-control-feedback" aria-hidden="true"></span> 

Fixed plunker

+0

這是一個簡單的修復。謝謝! –