Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs ng在ng上显示单击不工作_Javascript_Html_Angularjs - Fatal编程技术网

Javascript Angularjs ng在ng上显示单击不工作

Javascript Angularjs ng在ng上显示单击不工作,javascript,html,angularjs,Javascript,Html,Angularjs,我用angularjs创建了一个按钮 <button class="btn btn-setting" ng-click="showSearch = ! showSearch" > <img src="theme/images/settings.png" width="111"> </button> 还有一个像 <div ng-include="'pages/include/search.html'" ng-show="showSearc

我用angularjs创建了一个按钮

 <button class="btn btn-setting" ng-click="showSearch = ! showSearch" > 
  <img src="theme/images/settings.png" width="111">
 </button>

还有一个像

<div  ng-include="'pages/include/search.html'" ng-show="showSearch" ></div>

我需要在单击按钮时切换上述div的可见性。但它不显示。

只需执行即可

<button ng-click="setshowme(show)"></button>

$scope.setshowme = function (value) {
    if(value == true){
      $scope.show = false;
    }else{
      $scope.show = true
    }
}

$scope.setshowme=函数(值){
如果(值==true){
$scope.show=false;
}否则{
$scope.show=true
}
}
这是一个


你好,世界

首先检查两个
ng控制器内的这两个元素(
&

如果是这样,这将不起作用,因为
ng控制器
s有自己的
范围
。因此,
showSearch
位于一个作用域中,而其他控制器作用域无法直接访问它

然后检查一下

<div ng-show='showSearch'>show / hide div ...</div>
显示/隐藏div。。。
并查看此div是否正在切换其可见性

如果它工作正常

然后检查
ng include
src
路径是否正确


下面是一个更新showSearch模型的程序,如下所示

$scope.showSearch = {hideShowSearch : false}
更新的HTML

<button class="btn btn-setting" ng-click="showSearch.hideShowSearch = ! showSearch.hideShowSearch" > 
  <img src="theme/images/settings.png" width="111">
 </button>

 <div  ng-show="showSearch.hideShowSearch" >This is the test</div>

这就是测试


编辑-


在您的脚本中,hideShowSearch是原始搜索。因此它不执行双向数据绑定。因此您无法获得预期的结果。

关于
showSearch
?你以前声明过它是假的吗?发布整个代码(HTML)你发布的是好的。你能显示更大的HTML部分吗?它们是否共享同一个控制器?你能绑定其他值吗?您的应用程序和模板加载是否正确?创建的plunker似乎工作正常。如果将局部变量设置为$scope.showSearch=false或ng init='showSearch=false',则可以在函数内部检查它,而不是传递不受信任的输入值throw值aka setshowme(),如果($scope.show),则在函数内部检查{…是的,这是从我传递第二个参数的示例中复制的。)这与原始问题没有任何变化。使用函数调用而不是只执行
show=!show
几乎是等效的。如果你这样做,你需要一个ng init来定义加载时的值,否则它就是未定义的..但是IMHO如果没有必要的话,用html写js会很难看。我按照他的要求做了,把它转换成一个控制器。这真的很容易。你为什么要使用三元运算符,而不是仅仅用
反转它来切换值?
<button class="btn btn-setting" ng-click="showSearch.hideShowSearch = ! showSearch.hideShowSearch" > 
  <img src="theme/images/settings.png" width="111">
 </button>

 <div  ng-show="showSearch.hideShowSearch" >This is the test</div>