我有一个像这样使用的指令:
<dir model="data"></dir>
该指令具有隔离范围。
scope :{
model:'='
}
现在,我尝试使用页面的$ scope的另一个属性在该指令上使用
ng-show
,如下所示:<dir ng-show="show" model="data"></dir>
但这是行不通的,因为该指令试图在自己的作用域中查找
show
属性。我不希望指令知道它的容器可能选择隐藏它的事实。
我发现的解决方法是将指令包装在
<div>
中并在该元素上应用ng-show
,但是我不喜欢这迫使我使用的额外元素:<div ng-show="show" >
<dir model="data"></dir>
</div>
有更好的方法吗?
看到这个矮人:http://plnkr.co/edit/Q3MkWfl5mHssUeh3zXiR?p=preview
最佳答案
您可以考虑迁移到Angular 1.2或更高版本。 The isolate scope is now only exposed to directives with a scope property。这意味着ng-show不再受您的指令的影响,您可以完全像尝试执行此操作一样编写它:
<dir ng-show="show" model="data"></dir>
@ Angular-Developers:很好,伙计们!
关于angularjs - 如何在具有隔离范围的指令上使用ng-show,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16747225/