我如何在Angular JS中进行嵌套插值

时间:2014-05-09 02:48:25

标签: angularjs

我有一个ng-repeat,需要评估嵌套插值。这是一个例子:

<div ng-repeat="i in ['1', '2', '3']">
    should evaluate to {{ i }}: {{ (i>0) && ( {{ i }} ) || false }}
</div>

这会导致$ parse错误。我想的问题是Angular不能执行嵌套的求值操作,或者支持嵌套插值。

有解决这个问题的方法吗?

4 个答案:

答案 0 :(得分:0)

它为您提供解析错误,因为您无法嵌套{{}} ..

{{code}}基本上告诉角度,{{}}内的任何内容(在我的情况下是代码)都是JavaScript,js并不理解{{}}语法。这就是第二个{{ i }}导致问题的原因。

您可能还想查看ngRepeat文档 - 您可以使用一些特殊属性,例如$ index。https://docs.angularjs.org/api/ng/directive/ngRepeat

答案 1 :(得分:0)

我无法理解这个{{ i }}: {{ (i>0) && ( {{ i }} ) || false }}语句的含义,也不能在角度js中嵌套{{}}

你想要

吗?

<强> Working Demo

<div ng-controller="MyCtrl">
   <div ng-repeat="i in ['0','1', '2', '3']">
       {{ i>0 ? true: false }}
    </div> 
</div>

答案 2 :(得分:0)

将打印{{}}中的内容的结果 - 无需嵌套:

<div ng-repeat="i in ['0','1', '2', '3']"> {{ i > 0 ?  i : false }} </div>

答案 3 :(得分:0)

尝试创建动态表组件时,我遇到了类似的问题。使用以下代码,由于嵌套插值,我可以在前端显示数据库中的任何表,而无需定义任何内容。 嵌套插值只需要使用方括号即可。 例如:{{row [[col.column_name]]}}

<table id="dynamicTable" class="table table-hover" cellspacing="0">
    <thead>
        <tr>
            <th *ngFor="let col of Columns">{{col.column_name}}</th>
        </tr>
    </thead>
    <tbody>
        <tr *ngFor="let row of Table">
            <td *ngFor="let col of Columns">{{row[[col.column_name]]}}</td>
        </tr>
    </tbody>
</table>

希望这会有所帮助! (使用Angular 7)