我需要做什么:我需要根据显示和/或选择的其他部分和元素显示我的应用的各个部分。依赖规则的定义和维护可能变得复杂。
我当前的方法:我正在开发一个使用ng-show来显示它的某些HTML部分的应用。页面的其他部分可能取决于显示的部分与否。为了简单起见,我只需要使用自己的ID作为参数对每个部分进行ng-show,然后通过检查依赖项上的活动.ng-hide类来检查其依赖性是否满足。所以,为了说明一些事情,一些示例代码:
HTML:
<div id="SECTION/INIT">stuff</div>
<div ng-show="sectionDisplay('SECTION/GENERAL')" id="SECTION/GENERAL">more stuff</div>
<div ng-show="sectionDisplay('SECTION/GENERAL2')" id="SECTION/GENERAL2">more stuff</div>
的CoffeeScript / JS:
sectionsDependencies =
"SECTION/GENERAL": "SECTION/INIT" #GENERAL DEPENDS ON INIT (always shown)
"SECTION/GENERAL2": "SECTION/GENERAL" #GENERAL2 DEPENDS ON GENERAL
sectionDisplay = (id) ->
dependency = $document[0].getElementById(sectionsDependencies[id])
classes = dependency.classList
visible = !(classes.contains("ng-hide-active") || classes.contains("ng-hide-add") || classes.contains("ng-hide"))
console.log "Visibility", visible, e.id, classes
return visible
我的问题或我需要解决的问题: .ng-hide类检查似乎是从依赖性检查角度以不可靠的方式应用,当运行sectionDisplay函数时。有时在我检查它在依赖项上的使用后,它可以工作,其他时候.ng-hide类还没有应用,这当然不允许一致的应用程序行为。但是,类总是最终应用于HTML元素,这只是我不能依赖它。
知道为什么会发生这种情况或如何解决这个问题?想法,替代方法?
谢谢!