javascript - ng-if 中的原始 javascript 不起作用?

标签 javascript angularjs object indexing key

我正在尝试检查 Angular $scope 中的对象中是否存在键。在我的 Controller 中我有这个:

$scope.the_object = {'the_key': 123};

在我的模板中我有这个:

<span ng-if="'the_key' in the_object">
    the_key exists in the_object
</span>

但我在控制台中得到以下跟踪:

Error: [$parse:syntax] http://errors.angularjs.org/1.4.7/$parse/syntax?p0=in&p1=is%20an%20unexpected%20token&p2=11&p3='the_key'NaNn%20the_object&p4=in%20the_object
    at Error (native)
    at http://52.29.xx.xx:5000/bower/angular/angular.min.js?version=1.4.7:6:416
    at Object.s.throwError (http://52.29.xx.xx:5000/bower/angular/angular.min.js?version=1.4.7:209:339)
    at Object.s.ast (http://52.29.xx.xx:5000/bower/angular/angular.min.js?version=1.4.7:202:118)
    at Object.sd.compile (http://52.29.xx.xx:5000/bower/angular/angular.min.js?version=1.4.7:211:203)
    at fc.parse (http://52.29.xx.xx:5000/bower/angular/angular.min.js?version=1.4.7:238:193)
    at b.$get (http://52.29.xx.xx:5000/bower/angular/angular.min.js?version=1.4.7:117:315)
    at n.a.$get.n.$watch (http://52.29.xx.xx:5000/bower/angular/angular.min.js?version=1.4.7:127:125)
    at a.link (http://52.29.xx.xx:5000/bower/angular/angular.min.js?version=1.4.7:254:214)
    at aa (http://52.29.xx.xx:5000/bower/angular/angular.min.js?version=1.4.7:73:90)

如何从 ng-if 中检查 the_key 是否存在于 the_object 中?

最佳答案

如果您要检查的属性位于对象内部而不是继承的属性,则可以使用以下代码。

<span ng-if="the_object.hasOwnProperty('the_key')"> the_key exists in the_object </span>

如果上述情况并非如此,并且您确保没有初始化 the_key在您的对象中未定义,您可以使用以下代码:

<span ng-if="the_object['the_key'] !== undefined"> the_key exists in the_object </span>

检查这个plunker

如果您确保不会初始化 undefined object 的任何值,则第二种方法比第一种方法快得多。欲了解更多信息,请访问 https://stackoverflow.com/a/22074727/3292746

关于javascript - ng-if 中的原始 javascript 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35177216/

相关文章:

javascript - Chrome 扩展 - 在全屏视频顶部显示自定义通知/弹出窗口(HTML 元素)

javascript - 使用 Box API v2 在 Angular.js 中处理未经授权的请求

javascript - jQuery UI 自动完成 JSON 错误

javascript - 离开路线时 Angular 解除绑定(bind)事件

AngularJS 开关

javascript - 访问对象(基本)

javascript - ExpressJS 对象 PUT、DELETE 没有方法 'toLowerCase'

javascript - 使用变量作为对象的属性,如何?

.net - ELSA-Workflows 能走多远?

javascript - 如何从对象内的嵌套数组访问特定值?