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停止工作(如果单击了其中任何一个按钮,则调用了一个函数),我仍在试图找出原因。非常感谢。我真的很感谢你抽出时间。