Angular Js将一个固定的ng类和同一标记中的一个表达式组合在一起
Angular Js combine a fixed ng-class with an expression in same tag?
我有一个标签:
<body ng-cloak class="foobar" ng-class="{'fixed-header': settings.isFixed}">
在另一个类似的项目中,我有一个类似:
<body ng-cloak class="foobar" ng-class="routeClassName">
如何同时应用routeClassName
和条件类?
我试过
<body ng-cloak class="foobar" ng-class="{'routeClassName','fixed-header': settings.isFixed}">
和类似的,但它抛出了一个错误。所以我想我的语法是错误的…
有两种方法可以实现这一点:
首先,只要让Angular插值,因为它只是类名字符串,然后使用ngClass
作为条件:
<body ng-cloak class="foobar {{routeClassName}}" ng-class="{'fixed-header': settings.isFixed}">
第二,在你尝试过的语句中使用true:
<body ng-cloak class="foobar" ng-class="{'routeClassName': true, 'fixed-header': settings.isFixed}">
我倾向于第一个选项,因为ngClass
用于基于表达式的条件类。
对于更新版本的angular(从1.4.0开始,可能更早),一个更好的解决方案是通过ng class的数组表示法添加类:
<body class="foobar"
ng-class="[{'fixed-header': settings.isFixed}, routeClassName]">
一个工作示例:
angular.module('test',[]);
.blue{
background: blue;
}
.red {
border: 10px solid red;
}
.green{
border: 10px solid green;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
<body ng-app="test"
ng-class="[{'blue': boolVar}, strVar]">
<button type="button"
ng-click="boolVar=!boolVar;">Toggle Bool ({{boolVar}})</button>
<input type="text"
ng-init="strVar='green';"
ng-model="strVar">
</body>
您可以使用三元语句和字符串串联来获得所需的效果:
<body ng-cloak class="foobar" ng-class="(settings.isFixed ? 'fixed-header ' : '') + routeClassName">
请确保在条件类名后面添加空格,以便串联正常工作。
相关文章:
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- 正则表达式搜索一个空格,后跟一个字符
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- 使用一个表达式将两个变量分配给相同的值
- 在一个表达式中加载并使用ES6模块
- 解析一个复杂的JavaScript表达式,将其改写为另一种格式
- 包含一个集合的1到3个成员但其中一个成员不能单独存在的正则表达式
- 如何使用 JavaScript 正则表达式搜索除一个实例之外的所有内容
- 匹配三个正则表达式中的任意一个,以先到的为准(在javascript中)
- Js提示:“;期望一个赋值或函数调用,而看到一个表达式“;,Switch语句
- 有人能解释一下这个错误吗:期望一个赋值或函数调用,却看到了一个表达式
- JSHint错误:期望一个赋值或函数调用,却看到一个表达式
- 期望一个赋值或函数,却看到了一个表达式
- 在Typescript中传递一个表达式作为过滤器函数的参数
- 数据库中的列表函数得到一个表达式不会计算为函数错误
- JShint:期望一个赋值或函数调用,却看到了一个表达式
- Angular Js将一个固定的ng类和同一标记中的一个表达式组合在一起
- JavaScript:应为和赋值或函数调用,但却看到了一个表达式
- 你能在NG-MODEL中使用一个表达式吗