2015-09-18 58 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>