【发布时间】:2015-07-03 07:43:03
【问题描述】:
我开始更好地学习 angularJS,并且我注意到 AngularJS 试图强调将视图与控制器和封装分开。一个例子是人们告诉我 DOM 操作应该放在指令中。我现在有点掌握了窍门,以及使用注入当前元素的链接函数如何实现出色的行为功能,但这并不能解释我经常遇到的问题。
示例: 我有一个要通过单击按钮打开的侧边栏。如果不使用硬编码的 javascript/jquery 选择器来抓取侧边栏,就无法在按钮的指令链接函数中执行此操作,我在 angularJS(硬编码 dom 选择器)中看到了这一点,因为它打破了关注点的分离.我想解决这个问题的一种方法是让每个元素我希望操纵一个属性指令及其链接函数,将引用它的元素属性保存到 dom-factory 中,以便每当指令需要访问自身以外的元素时,它可以调用返回元素的dom-factory,即使它不知道它来自哪里。但这是“角度方式”吗?
我这样说是因为在我当前的项目中,我正在使用硬编码的选择器,因为我一直在更改我的 css,所以维护这些选择器已经很痛苦了。必须有更好的方法来访问多个 DOM 元素。有什么想法吗?
【问题讨论】:
-
通常可以使用范围变量(或服务)和
ng-class或ng-show等来执行此类操作。两者都允许使用ng-animate。在添加更多自己的 dom 操作之前考虑如何使用内置指令的数据绑定的好习惯
标签: html angularjs dom directive