angular中用ng-if、ng-hide、ng-show等在页面上加了一堆逻辑,真的好吗?

angular中用ng-if、ng-hide、ng-show等在页面上加了一堆逻辑,真的好吗?
感觉页面逻辑什么的不是更应该集中在controller里吗?
想知道大家是怎么认为的?

阅读 4.5k
3 个回答

ng-if、ng-hide、ng-show设定好了触发DOM显示隐藏的开关,至于实时的条件当然是交给controller里面去写逻辑。
一旦触发满足开关的条件,ng-if、ng-hide、ng-show就会生效了。
个人觉得angular是用这种方式,避免了直接操作DOM,用这种html指令间接的去做。

个人感觉页面逻辑不应该写在controller里,数据逻辑应该写在controller里。 无论angular还是vuejs,它们都是在构造两个“平行世界”,一个是页面展示,也个是其后的数据逻辑。angularjs通过双向数据绑定将两者结合起来。 ng-if ng-hide ng-show这些指令明显是处理页面展示的逻辑,最好是放在页面中。为什么我们原来不建议把处理逻辑放在html代码中呢?因为它容易让编程显得混乱不堪。在html直接添加style设置样式让我们感觉很爽,但是我们为了好维护,不得不另外再写一个css文件来维护页面样式。我们巴不得在一个文件里就设计好整个页面的样式,交互,但是为了后期更好的开发,我们“不得不”去分开页面,去研究“模块化”之类的东西。
同时想想 我们为什么用markdown来编辑文本?因为markdown可以省去美化页面的步骤,太多人讨厌写了文本还是去调样式了。也就是说其实我们现在做的很多事情不过是在“曲线救国”。我们一直追求的是“直接”“直观”的代码编写方式,从未改变。举个栗子,vue-cli构建工具把组件的tempalte,style,script全放在了一页。写代码就不用去文件之间切来切去,爽的飞起。
ng-if ng-hide ng-show为我们提供了直接简便 操作页面逻辑的方式,比去js代码里面操作页面逻辑不知道高到哪里去了。
代码写来写去,发现我们似乎回到了圆点,不,应该说是回旋式上升吧。

ng-if后面只需要跟一个bool变量就好了,具体的这个变量的生成逻辑放到controller中,这样避免了html太多js,也方便后面单元测试。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题