使用带有ng-if指令的角度表达式

时间:2015-04-27 18:14:26

标签: angularjs

是否可以在ng-if?

中评估角度表达式

例如:

<div ng-if="itemData.contentTypeId = {{$root.res('resources', article_type_id')}}">
<!-- some content -->
<div>

还尝试用单引号括起表达式:

<div ng-if="itemData.contentTypeId = '{{$root.res('resources', article_type_id')}}'">
<!-- some content -->
<div>

并且没有按预期工作。

这是语法问题还是不可能?如果这是一个语法问题,应该如何编写上述语句?

1 个答案:

答案 0 :(得分:4)

ng-if文本是一个角度表达式。无论你写的是什么字符串,都会使用$scope.$eval()进行角度解析。表达式中使用的任何变量(包括函数)必须在当前$ scope中可见。 这意味着要使此代码生效,必须定义$scope.$root。确保它是,或者您无法运行res()功能,或者找到另一种方式。

ng-if会将表达式评估为真值或假值,因此=必须是比较运算符=====

<div ng-if="itemData.contentTypeId === $root.res('resources', article_type_id')">