目标效果:
clipboard.png

最初的想法,ng-checked="xxx"当xxx为true时,多选框为勾选状态,而ng-model则可以与勾选的状态值绑定,代码如下:
html代码

clipboard.png

控制器中的测试数据:
clipboard.png

效果:

clipboard.png

显然并不是我想要的,在全选后下面的false并没有跟着改变,所以仅靠页面是无法实现全选效果的
所以我在控制器里添加了一个方法,在点击全选的时候将所有数据的checked改变为true,取消勾选时改变为false
v层代码如下:

clipboard.png

控制器代码如下:

clipboard.png

效果如下:

clipboard.png

虽然下面的状态改变了,但没有按照预期变化,反而是勾选时false,非勾选时为true

打开控制台,打断点,发现传给c层的all为false,也就是说先进行ng-click,然后才是ng-model的数值绑定
clipboard.png

既然结果反着来,那么我就在传all时也反着来

clipboard.png

效果如下,就是我想要的
clipboard.png
思考:为什么要反着传值才行呢?
猜想:
clipboard.png

总结

虽然实现了效果,但这样实现毕竟感觉怪怪的,希望能有更好的解决方案
最后,感谢朴世超学长的帮助


陈杰
167 声望332 粉丝

为API生,为框架死;