I dynamically set the id code of p in html as follows:
<p ng-repeat="item in items">
<p id="{{item.name}}" class="ng-hide"> {{item.name}} </p>
<p>
After HTML parsing, the effect of dynamic ID can be seen, similar to this:
<p ng-repeat="item in items">
<p id="name1" class="ng-hide"> name1 </p>
<p id="name2" class="ng-hide"> name2 </p>
<p id="name3" class="ng-hide"> name3 </p>
<p>
I want to dynamically control whether these p's are displayed or not. I wrote this code in js:
html:
<input type="button" ng-click="show(item.name)">
js:
$scope.show=function(name){
document.getElementById(name).style.display = "block";
}
The result did not achieve the effect I wanted, and three ps were still displayed every time I clicked. Is there any way to achieve the effect I want?
过去多啦不再A梦2017-05-15 17:10:52
Although I don’t understand why, I changed class="ng-hide" to style="desplay:none" and it worked. . .
伊谢尔伦2017-05-15 17:10:52
Add a field "isShow" to item, the default value is false,
<p ng-repeat="item in items">
<p id="{{item.name}}" class="ng-hide" ng-show="item.isShow"> {{item.name}} </p>
<p>
When the button is clicked, the value of isShow is reversed.
html:
<input type="button" ng-click="show(index)">
js:
$scope.show=function(index){
$scope.items[index].isShow = !$scope.items[index].isShow;
}
PHP中文网2017-05-15 17:10:52
There are two ways to control the display of elements in angular.js. The first is: ng-show ng-hide and the other is ng-if
大家讲道理2017-05-15 17:10:52
It is recommended to reorganize your data and use ng-hide to control whether elements are hidden or not:
`[
{
id:'id1',
name:'name1',
hide:false //配合nd-hide实现元素隐藏和显示
},
{
id:'id2'
name:'name2',
hide:true
}
//...
]
----------
<p ng-repeat="item in items">
<p id="item.id" ng-hide="item.hide" ng-bind="item.name"></p>
<p>`
写的比较简单,有问题再问
过去多啦不再A梦2017-05-15 17:10:52
Add another attribute, write it to the custom attribute of p, and then ng-if makes the judgment?