2016-08-13 96 views
1

我想根據點擊來隱藏/顯示div。當頁面加載div被隱藏時,這是預期的行爲,但我必須點擊兩次才能讓它開始切換。我在這裏錯過了什麼?ng-show需要兩次點擊才能開始切換

這是我的代碼

<a href ng-click="ShowOrHide('01')" class="list-group-item">Night 1</a> <div ng-show="showNight">{{night}}</div> 

,這是角模塊

var MyApp = angular.module("MyModule", []); 
MyApp .controller("MyController", function ($scope){ 
    $scope.test = "This is from angular"; 
    $scope.showNight = "false"; 
    $scope.ShowOrHide = function(night){ 
     $scope.night = "night " + night; 
     $scope.showNight = !$scope.showNight; 
    }; 

}); 
+0

false和「false」不一樣 –

回答

1

的問題是,要設置$scope.showNight字符串"false",這是truthy,作爲一個非空串。如果您將$scope.showNight設置爲false(而不是字符串),則應該修復它。

More info on truthy and falsy values in JS

0

點擊兩次後$scope.showNight那張設置爲boolean真。

$scope.showNight = false; 
      $scope.ShowOrHide = function(night) { 
       $scope.night = "night " + night; 
       $scope.showNight = !$scope.showNight; 
      }; 
+0

謝謝大家。我在報價中做「虛假」並不是很聰明。 – Abbasi

0

您必須使用$scope.showNight = false;而不是$scope.showNight = "false";

相關問題