2016-07-29 37 views
0

我正在使用角度重复来动态填充表单的字段。有一种情况下,我需要通知用户(显示!图标的重复字段)。下面是代码片段:Angular js - 如何根据条件在html中增加

<div ng-init="counter = 0"> 
    <div ng-repeat="item in list track by $index"> 
    <div ng-show="{{item.show}}">{{counter+1}}</div> 
    </div> 
    <div ng-show="{{counter > 1}}"> ! </div> 
</div> 

计数器变量只有增量如果使用像{{计数器+ $指数}},也可以是可能的,而不$指数?

+0

计数器=计数+ 1? –

+1

'ng-show =“item.show”' – dfsq

+0

你正在寻找什么来通知重复值。 在小提琴中发布你的完整代码。 –

回答

0

在html中分配变量并不正式支持。

但是总有一款适合你问一个黑客:我使用了非显示DIV来分配“计数器”有条件

<div ng-init="counter = 0"></div> 
<div ng-repeat="n in [1,2,3,4,5]"> 
    <div style="display:none;">{{ n == 3 ? counter = "World!" : counter = n }}</div> 
    <p>Hello {{ counter }}</p> 
</div> 

通知。

Output: 
Hello 1 
Hello 2 
Hello World! 
Hello 4 
Hello 5 

应答传送至1评论: 当计数器== 3,我们通过2

<div ng-init="counter = 0"></div> 
<div ng-repeat="n in [1,2,3,4,5]"> 
    <div style="display:none;"> 
     {{ counter = n }} 
     {{ counter == 3 ? counter = counter/2 : counter = counter }} 
    </div> 
    <p>Hello {{ counter }}</p> 
</div> 

Output: 
Hello 1 
Hello 2 
Hello 1.5 
Hello 4 
Hello 5 

回答它划分到第三评论:

我终于明白了你问了什么。让我通过使用ng-if保留计数器的记录来改变方法。当n被2整除时,我使用ng-init来增加计数器。你需要调用$ parent。$ parent.counter来访问原来的计数器,否则ng-if会在子范围内创建它自己的计数器。

JSFiddle

<div ng-init="counter = 0"></div>  
<div ng-repeat="n in [2,6,5,6,8,9,11] track by $index"> 
    <!-- ngRepeat child scope --> 
    <div ng-if="n % 2 == 0" 
    ng-init="$parent.$parent.counter = $parent.$parent.counter + 1" 
    style="display:none;"> 
     <!-- ngIf also creates a child scope --> 
    </div> 
</div>  
<p>Counter = {{ counter }}</p> 

Output: 
Counter = 4 
+0

谢谢@KinoP,但它不会达到目的即你的例子可以用数字除以2来计算吗?如果是的话,请粘贴代码片段,它会解决我的问题。 – ManishSForce

+0

@crmApex我不确定我是否了解您的问题,但请检查上述更新后的答案。条件表达式{{boolean? true case:false case}}非常强大。 – KinoP

+0

谢谢。我想**输出:2 **,因为在你的列表中n [1,2,3,4,5]只有2&4可以被2整除。现在,考虑动态列表的事实。假设n有[2,6,5,6,8,9,11],所以**输出:4 **因为n有可以被2整除的(2,6,6,8)。因此,基本上{当n的项目除以2且余数= 0时,需要增加{计数器}}。 – ManishSForce