标签按钮已经有光标css分配.我想覆盖光标css根据is_active值禁用按钮. is_active可能有值0或1.以下是代码的js/html请让我知道正确的方法将光标css应用到按钮.
$scope.ngStyleDisabled = function(status) {
if (status == 1) {
return {};
} else if (status == 0) {
return '{\'cursor\':\'not-allowed !important\',\'pointer-events\':\'none\'}';
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<button ng-style="{{ngStyleDisabled(item.is_active)}}">Action Button</button>
5条答案
按热度按时间ssm49v7z1#
剧透警告:所有说ng-style不支持
!important
的人都是*错了!!例如:
等等...所以我们必须使用一个黑客来让
!important
工作!?!这就像...一个双重黑客!!!或者一个双重交叉!!一个三重交叉?!?哈哈。
ht4b089n2#
ng-style
不支持!important
。因此,替代方案是使用
ng-class
而不是ng-style
,它将解决问题。如果你想具体使用
ng-style
,那么试着在html本身中编写-请不要尝试在任何函数中编写。hjqgdpho3#
根据documentation,你的表达式需要是一个对象:
一个表达式,它求值为一个对象,该对象的键是CSS样式名,值是这些CSS键的对应值。
尝试返回一个对象而不是字符串(使用quoutes,因为CSS属性可能不是有效的键):
另外,在模板中省略花括号:
这个JSFiddle显示了属性是如何应用到按钮上的。
注意根据question和GitHub issue,
ng-style
指令中不支持!important
关键字。您可以在链接后面找到解决方法。gev0vcfq4#
https://github.com/angular/angular.js/issues/5379中提到的最优雅的解决方法对我很有效!
示例(用玉/哈巴狗书写):
a#share-test-link.item(ng-show="iAmTeamCreator()", href="", data-ng-attr-style="{{iAmTeamCreator() && 'display: block!important' || ''}}")
xxe27gdn5#
因为!important的用法在ng-style中是直接禁止的(源代码:angular github issue mentioning the same)。
可以只使用angular属性绑定,并通过字符串连接生成样式字符串: