2016-08-13 83 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";

相关问题