Javascript Angularjs ng在ng上显示单击不工作
我用angularjs创建了一个按钮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
<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>