复选框中ng-checked和ng-model的区别与分析 ng-checked失效的原因? AngularJS

ng-checked指令分析

一、ng-checked仅用于设置复选框的选中状态,即当设置ng-checked的值为true时,复选框变为选中,false时,复选框为不选中状态

前端代码如下:

复选框中ng-checked和ng-model的区别与分析 ng-checked失效的原因? AngularJS

复选框中ng-checked和ng-model的区别与分析 ng-checked失效的原因? AngularJS

效果如图:

复选框中ng-checked和ng-model的区别与分析 ng-checked失效的原因? AngularJS

二、注意当手工设置复选框的选中状态时,ng-checked的值不会发生任何改变

手工设置复选框的选中状态,把复选框1改为没选中,复选框2改为选中,控制台打印ng-checked的值,

复选框中ng-checked和ng-model的区别与分析 ng-checked失效的原因? AngularJS

我们发现和上一次设置的值相同,但是复选框的选中状态此时已经和ng-checked无关了。

综上所述:ng-checked不能很好反馈复选框的选中状态,只能用来设置选中状态

ng-model 指令分析

一、ng-model可以设置复选框的选中状态,此时效果和ng-checked一样,

把上述代码中的ng-checked更换为ng-model

如下:

复选框中ng-checked和ng-model的区别与分析 ng-checked失效的原因? AngularJS

效果如下:

复选框中ng-checked和ng-model的区别与分析 ng-checked失效的原因? AngularJS

二、手工设置复选框的选中状态,ng-model可反馈复选框的选中状态 

我们把复选框2的状态改为选中,控制台打印

复选框中ng-checked和ng-model的区别与分析 ng-checked失效的原因? AngularJS

可以看到复选框2的ng-model的值也变为true了。

综上所述:在复选框中,如果想要获取复选框的选中状态,用ng-model更加合适