使用,(位与运算符)在Angular ng-if表达式中
Using & (bitwise AND operator) in Angular ng-if expressions
我无法让&
运算符在Angular ng-if
表达式中工作(与一些位标志一起使用)。假设我们有这样一些HTML:
<div ng-if="value & 2"> </div>
如果value
等于3,那么按位运算应该返回2,因此是一个真值。
Syntax Error
异常。是否不允许手术?还是我做错了什么?连接到活塞。
编辑:我已经通过使用一个简单的函数解决了我的问题:
$scope.checkFlag = function(value, flag){
return value & flag;
}
但我真的不喜欢这个解决方案。是否有一种方法可以在ng-if
中使用它(显然不使用该函数)? 你不能在Angular表达式中使用按位&
运算符。根据文档:
Angular表达式与JavaScript表达式类似,但有以下区别:
- …
- 你不能在Angular表达式中使用Bitwise、
,
或void
操作符。如果你想运行更复杂的JavaScript代码,你应该让它成为一个控制器方法,并从你的视图中调用该方法。
术语注释:&
是位 AND操作符;&&
是逻辑 AND操作符。
UPDATE:您的checkFlag
函数可能是最好的解决方法,因为它的名称清楚地表明它的作用(这就是我要使用的),但如果您绝对不想要额外的函数,您可以使用以下等效表达式:
<div ng-if="value % 4 >= 2"> </div>
一般来说,(value & x) != 0
(其中x
是2的幂)等价于value % (2 * x) >= x
可以使用按位管道完成此操作:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'hasFlags'
})
export class HasFlagsPipe implements PipeTransform {
transform(flagsL: number, flagsR: number): boolean {
return (flagsL & flagsR) != 0;
}
}
用法:
<div [hidden]="flagsL | hasFlags : flagsR">
注意:我正在使用angular 2+,但是偶然看到了这篇文章,所以希望这篇文章能帮助到其他人。
我不确定你想在这里完成什么,但你正在使用位与运算符。在angular文档中它说:
不能使用Bitwise、逗号和Void操作符:不能在Angular表达式中使用Bitwise、或Void操作符。
AngularJS表达式
问题是你正在使用&
而不是&&
。&
是位运算符,Angular不允许在表达式中使用位运算符。
由于没有人提供解决方案,我认为您可以将您的html修改为:
<body ng-controller="MainCtrl">
<div ng-if="check(value,2)">Hey! </div>
</body>
$scope.check = function(val, providedInt){
return val & providedInt;
};
plunkr见!
相关文章:
- Angular isState-如何在ng if内部进行比较
- Angular ng show没有'如果我加上ng-if就不起作用
- ng-show / ng-hide / ng-if 不适用于 Angular 指令
- Angular 在 ng-if 中添加 ng-show
- angular I只能设置'true'on'ng-if'但我可以't设置`false'
- Angular JS中ng-if表达式中条件单向绑定的语法
- Angular ng if不重新编译指令
- angular for Each不使用ng if函数
- 使用ng-if/ng-show/ng-switch的Angular条件显示会简要地显示这两个元素
- Angular Deck在ng-if中访问纸牌
- 在angular js中选择性地点击ng-if指令
- Angular 1.4 ng if和ng重复到菜单
- Angular ng-repeat忽略嵌套的ng-if
- 在angular.js中,检测$last的指令不能与ng-if一起工作
- Angular - ng-if -如何在ng-if模板被渲染后回调
- 带过滤结果的Angular ng-if
- Angular ng-if多个条件不工作
- 使用,(位与运算符)在Angular ng-if表达式中
- Angular ng-if用于检查空字符串不工作
- Angular ng-if和更改Twitter引导栏