使用 `ng-show` 显示和隐藏未按预期工作

Show and hide not working as per expected using `ng-show`

我正在尝试 showhide 搜索字段。为此,我使用了一个函数并传递了选项。它只有 show 搜索字段,但我无法将其隐藏起来。

这里有什么问题?

这是我的代码:

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

你必须给 showSearch 函数 false 而不是 'false' 显示

<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>

删除 searchHandler('false') 调用中 'false' 周围的单引号。

您目前拥有: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>

<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>