Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不存在DOM的AngularJs元素指令_Angularjs - Fatal编程技术网

不存在DOM的AngularJs元素指令

不存在DOM的AngularJs元素指令,angularjs,Angularjs,隐藏元素仍然会影响css选择器的布局流,例如:first child。我希望我的指令被声明为一个元素restrict:'E',不产生破坏性的DOM元素并创建自己的隔离作用域。是否可以通过生成注释来挂起指令作用域来实现这一点?似乎不允许使用单个注释的模板 我希望使用此指令能够根据需要有条件地泛化和显示DOM内容。当不需要时,没有DOM存在。例如,我有一个list指令,它使用ng repeat,并用div容器包装。如果列表中没有要显示的项目,我希望整个div计数器不存在 避免使用:第一个孩子是可能的

隐藏元素仍然会影响css选择器的布局流,例如
:first child
。我希望我的指令被声明为一个元素
restrict:'E'
,不产生破坏性的DOM元素并创建自己的隔离作用域。是否可以通过生成注释来挂起指令作用域来实现这一点?似乎不允许使用单个注释的模板

我希望使用此指令能够根据需要有条件地泛化和显示DOM内容。当不需要时,没有DOM存在。例如,我有一个list指令,它使用
ng repeat
,并用div容器包装。如果列表中没有要显示的项目,我希望整个div计数器不存在


避免使用
:第一个孩子
是可能的,但这似乎是一个很难解决的问题。更一般地说,它似乎是一个有用且高效的特性,能够在页面中放置“E”指令,这些指令知道它们的位置,但在需要时才进入DOM。我很惊讶这并不是一个更受欢迎的功能。

我找到了一个简单而令人满意的答案。执行ng if和其他人所做的操作,创建注释元素,将其作为占位符插入,然后删除原始指令。这样,该指令就没有DOM可见的存在,也不会干扰css类,但在以后需要插入或修改DOM时,它仍然知道它的位置。

如果没有DOM元素,您希望您的指令做什么?整个问题的关键是修改页面上的内容。我编辑的目的是添加对您问题的回答。这仍然不清楚,但我怀疑最好的答案是重写CSS以说明空的指令元素。增加了一点清晰度。