大家都知道 ng-class 的使用,绑定了一个对象,key 为 css 样式名,value 为 boolean ,true 的时候对应 css 样式值会生效~
今天的坑就是有关这个生效的问题。
下面来看一段代码:
<! DOCTYPE html >
< html ng-app ='myApp' >
< head >
< meta charset ='utf-8' >
< script src ='angular.js' ></ script >
< style >
ul.ul li {
color : red ;
}
.textGray {
color : gray ;
}
</ style >
</ head >
< body >
< div ng-controller ='myCtrl' >
< ul class ='ul' >
< li ng-repeat ="obj in list" ng-click ="canClickFnc(obj)" ng-class ='{"textGray": !obj.canClick}' >
{{obj.name}} , canClick : {{obj.canClick}}
</ li >
</ ul >
</ div >
< script >
angular.module( " myApp " ,[])
.controller( " myCtrl " , function ($scope){
$scope.list = [];
var enArr = [ ' a ' , ' b ' , ' c ' , ' d ' , ' e ' , ' f ' ];
var i = 0 ;
while (i < 5 ) {
$scope.list.push({ ' name ' : enArr[Math.floor(Math.random() * enArr.length)], ' canClick ' : Math.round(Math.random()) == 0 ? true : false });
i ++ ;
}
$scope.canClickFnc = function (obj) {
if ( ! obj.canClick) {
return false ;
}
console.log(obj);
}
})
</ script >
</ body >
</ html >
这段代码本身没有问题,使用的语法也都是正确的,可为什么样式就是出不来呢?
其实问题要发现也很容易,打开 F12 ,看 Element 样式值,就会发现 ng-class 添加的 textGray 是被删除线划掉的状态,也就是不可用的,这说明了什么?权值不够被覆盖了!那该怎么简单而有效的使 ng-class 生效呢?
哈哈,使用 "!imortant" !
< style >
.textGray {
color : gray !important ;
}
</ style >
说清楚了才发现特别简单系不!
查看更多关于angular 的 ng-class 样式不生效问题的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did222813