2016-07-29 43 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