2015-09-18 53 views
1

我想要showhide搜索字段。爲此,我正在使用單個函數並傳遞選項。它只有show搜索字段,但我無法將其隱藏起來。顯示和隱藏不按照預期使用`ng顯示`

這裏有什麼問題?

這裏是我的代碼:

var app = angular.module('plunker', []); 

app.controller('MainCtrl', function($scope) { 

    $scope.showSearch = false; 

    $scope.searchHandler = function (option) { 

     $scope.showSearch = option; 

    } 

}); 

HTML:

<a ng-href="" ng-click="searchHandler('true')">Show</a> 

    <div> 

     <span ng-show="showSearch"> 
     <input type="text" name="quickSearch" id="quickSearch" value="Search" /> 
     </span> 



    </div> 

    <a ng-href="" ng-click="searchHandler('false')">Hide</a>//not working 

Live Demo

回答

1

你必須給假不是 '假' 的showSearch功能 顯示

<div> 

    <span ng-show="showSearch"> 
    <input type="text" name="quickSearch" id="quickSearch" value="Search" /> 
    </span> 



</div> 

<a ng-href="" ng-click="searchHandler(false)">Hide</a> 
+0

的同樣的事情爲真 – hic1086

+0

是的,作品。因爲'真正'的價值爲我工作。所以我認爲這個問題不是因爲布爾。 – user2024080

+0

字符串「false」是truthy。字符串「真」也是真實的。 –

1

刪除searchHandler('false')調用中'false'的單引號。

您目前有:NG-點擊= 「searchHandler( '假')」

更改爲:NG-點擊= 「searchHandler(假)」

1

你必須傳遞一個布爾值而不是一個字符串,所以你只需要去掉引號

<a ng-href="" ng-click="searchHandler(false)">Hide</a> 
0

刪除單引號字符。應該searchHandler(false)searchHandler(true)

0

更簡單,可徹底清除功能,只需撥動布爾:

<a ng-click="showSearch = !showSearch">Hide</a> 

OR

<a ng-click="showSearch = false">Hide</a> 
0

刪除單引號應該工作

<!DOCTYPE html> 
<html ng-app="plunker"> 

<head> 
<meta charset="utf-8" /> 
<title>AngularJS Plunker</title> 
<script>document.write('<base href="' + document.location + '" />');  </script> 
<link rel="stylesheet" href="style.css" /> 
<script data-require="[email protected]" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js" data-semver="1.4.5"></script> 
<script src="app.js"></script> 
</head> 

<body ng-controller="MainCtrl"> 

<a ng-href="" ng-click="searchHandler('true')">Show</a> 

<div> 

    <span ng-show="showSearch"> 
    <input type="text" name="quickSearch" id="quickSearch" value="Search" /> 
    </span> 



</div> 

<a ng-href="" ng-click="searchHandler(false)">Hide</a> 

</body> 

</html>