Angularjs 使用“ng Show”显示和隐藏未按预期工作`

Angularjs 使用“ng Show”显示和隐藏未按预期工作`,angularjs,angular-directive,Angularjs,Angular Directive,我正在尝试显示和隐藏搜索字段。为此,我使用单个函数并传递选项。它只显示搜索字段,但我无法将其隐藏 这里怎么了 这是我的密码: var app = angular.module('plunker', []); app.controller('MainCtrl', function($scope) { $scope.showSearch = false; $scope.searchHandler = function ( option ) { $scope.sh

我正在尝试
显示
隐藏
搜索字段。为此,我使用单个函数并传递选项。它只显示搜索字段,但我无法将其隐藏

这里怎么了

这是我的密码:

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

//不起作用

必须为showSearch函数指定false而不是'false' 展示


删除searchHandler(“false”)调用中“false”周围的单引号

i、 e

您当前有:ng click=“searchHandler('false')”


将此更改为:ng click=“searchHandler(false)”

您必须向其传递一个布尔值,而不是字符串,因此您需要做的就是去掉引号

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


删除单引号字符。应该是
searchHandler(false)
searchHandler(true)

更简单,可以完全删除函数,只需切换布尔值:

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

隐藏

删除单引号应该可以

<!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="angular.js@1.4.x" 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>

安古拉斯普朗克
文件。写(“”);

trueYes也有同样的功能。因为
true
值对我有效。所以我认为问题不是因为布尔值,字符串“false”是真的。字符串“true”也是真实的。
<a ng-click="showSearch = false">Hide</a>
<!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="angular.js@1.4.x" 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>