Mic*_*hał 9 javascript logic angularjs
任何人都可以向我解释为什么Angularjs ngIf指令会像'f'和'F'一样false?
简单示例不起作用:
<input type="text" ng-model="test" />
<div ng-if="test">{{test}}<div>
Run Code Online (Sandbox Code Playgroud)
如果你把'f'或'F'没有显示在div中,任何其他字母或正弦都可以正常工作.
dfs*_*fsq 11
ngIf在内部使用toBoolean检查.这是它自己:toBoolean
function toBoolean(value) {
if (typeof value === 'function') {
value = true;
} else if (value && value.length !== 0) {
var v = lowercase("" + value);
value = !(v == 'f' || v == '0' || v == 'false' || v == 'no' || v == 'n' || v == '[]');
} else {
value = false;
}
return value;
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,不仅会出现f字母问题,还会出现'0','不','n'等问题.虽然不会修复.但是toBoolean在将来的版本中很可能会被删除.
在Github上看到这个讨论:https://github.com/angular/angular.js/issues/1229? source = cc
| 归档时间: |
|
| 查看次数: |
751 次 |
| 最近记录: |