Angularjs 如何有条件地隐藏Angular指令的元素
我有一个角度指示 这是它的模板副本Angularjs 如何有条件地隐藏Angular指令的元素,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个角度指示 这是它的模板副本 <div> <div> <div></div> <div></div> <!-- to be hidden in some places --> <div></div> </div> </div> 这个指令不是动态的。加载页面时,它只呈现一次。我想在某些地方使用
<div>
<div>
<div></div>
<div></div> <!-- to be hidden in some places -->
<div></div>
</div>
</div>
这个指令不是动态的。加载页面时,它只呈现一次。我想在某些地方使用相同的指令,但没有特定的div。最好的方法是什么
我考虑并研究了以下几点
我是一个比较新的人,我的方法可能是错误的。请指出我可能犯的错误
<div ng-show="somemodel"></div>
- 使用一些模型来显示或隐藏它。但问题是我必须在每个控制器中创建一个模型/变量
- 根据传递给指令的值更改链接函数并隐藏div
- 我看不到手表的使用,因为一旦用户加载页面,一切都不会改变
<div directive-name showParticularDiv = "true" />
<div directive-name showParticularDiv = "false" />
在实现某些方法后进行编辑。
看法
模板
<div class="timebuttons">
<div class="ui button" ng-click="vm.getPredefinedDataButtons(365)">LAST YEAR</div>
<div class="ui button" ng-click="vm.getPredefinedDataButtons(90)">LAST QUARTER</div>
<div class="ui button" ng-click="vm.getPredefinedDataButtons(31)">LAST MONTH</div>
<div class="ui button" ng-click="vm.getPredefinedDataButtons(7)">LAST WEEK</div>
<div class="ui button" ng-click="vm.getPredefinedDataButtons(0)" ng-show="vm.showToday">TODAY</div>
<div class="ui button blackbody" id="givedate" ng-click="showRange = !showRange">CUSTOM RANGE</div>
</div>
去年
上季度
上个月
上周
今天
自定义范围
这很有效。如果我使用控制器中的变量来隐藏/显示div,它就可以正常工作
如果我使用指令的作用域而不是控制器中的模型,ng click将停止工作
<div date-picker-directive show-today="false" />
ng在模板中单击停止工作。最好的方法是通过属性(如在上一个代码块中)并在
范围
指令的属性中绑定。关于范围绑定的更多信息,您可以阅读。另外,重要的是要记住指令名及其属性将转换为kebab大小写,因此,如果您有名为myItem
的属性或指令,则应在HTML中将其写成myItem
<div date-picker-directive show-today="false" />
angular
.module('应用程序',[])
.controller('mainCtrl',函数($scope){
$scope.show=false;
}).directive('dynamicDirective',function(){
返回{
限制:“A”,
范围:{
showHidden:“=?”
},
模板:“隐藏”
}
});代码>
显示隐藏
我不想切换它。无论哪种方式,我都需要在控制器中创建一个模型/变量。对吗?切换只是可视化/用例之一。是的,但是您也可以直接传递值而不是变量。谢谢。等待更多的答案:)我尝试了你的解决方案。按预期隐藏我要隐藏的按钮。但当我在我想隐藏的按钮上使用ng show或ng if时,ng click停止工作(如果单击了其中任何一个按钮,则调用了一个函数),我仍在试图找出原因。非常感谢。我真的很感谢你抽出时间。