我对超级英雄框架 AngularJS 很陌生,所以请原谅我的菜鸟!因此,当我试图开发一个简单的 SPA 以允许管理员通过一个充满选择复选框的表格来更改我网站中其他用户的权限时,我遇到了一个问题。我定义$scope.checked
了这样我就可以知道管理员选择了多少用户,以及$scope.mainCheckBox
在以下三种情况下,哪些用户将持有正确的主要复选框的 CSS 类(如 Gmail 中的那个,您使用它来选择全部/无):所有用户已选择、未选择用户和部分选择。这个简单的逻辑如下:
$scope.updateMainCheckBox = function(){
if(this.checked==this.users.length) this.mainCheckBox = "qm-icon-checked";
else if(!this.checked) this.mainCheckBox = "";
else this.mainCheckBox = "qm-icon-minus";
};
在其他复选框的 ng-click 事件回调结束时运行此代码,此代码能够正确选择类,但不会将类分配给mainCheckBox
. 当我将每个更改this.mainCheckBox
为$scope.mainCheckBox
一切顺利时,页面将按预期运行。
所以,我知道在 vanilla Jsthis
中是对对象的引用,window
但由于 AngularJS 有自己的事件处理循环,我相信现在情况并非如此。我希望它是$scope
, since checked
and的参考users
,但显然不是。那么,这里发生了什么?而且,是否有更“角度”的方式来实现这一点?