2013-08-21 4 views
5

मैंने एनजी-दोहराने वाली एक सूची जेनरेट की, जहां प्रत्येक आइटम में एक गणना चर है। सूची में मेरे पास एक लिंक है, जब मैं इसे क्लिक करता हूं तो मैं गिनती में वृद्धि करना चाहता हूं।एनजी-दोहराने के साथ उत्पन्न आइटम में वृद्धि काउंटर

मेरे पास कोणीय-जेएस तरीके से इसे हल करने के लिए कोई सुराग नहीं है।

Plunker

<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"></script> 

    <script> 
    function increment() { 

    } 

    </script> 
</head> 

<body> 
    <div ng-init="items = [ 
    {name:'fruit', count:4}, 
    {name:'car', count:1}, 
    {name:'dog', count:2} 
    ]"> 
    <ul> 
     <li ng-repeat="item in items"> 
     <span>Count:</span> 
     <span>{{item.count}}</span> 
     <a onclick="increment();">Increment</a> 
     </li> 
    </ul> 
    </div> 
</body> 

JQuery के साथ मैं अवधि में एक विशिष्ट आईडी आवंटित होता है, कुछ काउंटर चर का उपयोग कर, बढ़ाने के लिए, एचटीएमएल वस्तु और अद्यतन लगता है इस आईडी गुजरती हैं। लेकिन मैं इसे करने के लिए एक कोणीय तरीके के बारे में उत्सुक हूँ।

उत्तर

8

आप ng-click का उपयोग इस तरह प्रत्येक पंक्ति के लिए डेटा मॉडल में हेरफेर करने के कर सकते हैं:

function ctrl($scope) { 
    $scope.increment = function(item){ 
    item.count += 1; 
    } 
} 

<a ng-click="increment(item);">Increment</a> 

यकीन है कि आप इस <body ng-controller="ctrl">

DEMO

+0

बिल्कुल सही है, मैं वास्तव में क्या जरूरत है। आपका बहुत बहुत धन्यवाद! – Ixx

+0

@lxx कोई समस्या नहीं है, और आप टेम्पलेट में 'अभिव्यक्ति' की बजाय बेहतर 'फ़ंक्शन' का उपयोग करेंगे, क्योंकि फ़ंक्शन अधिक 'टेस्टेबल' है। – zsong

+0

एक आकर्षण की तरह काम किया, धन्यवाद! – shish

6
की तरह लपेट के लिए नियंत्रक डाल बनाओ
<a ng-click="item.count = item.count + 1">Increment</a> 
+8

क्यों 'Increment' काम नहीं करता है? – zsitro

2

http://plnkr.co/edit/jh4UIt?p=preview

बस ng-click = "item.count = item.count + 1" पर क्लिक करें और एक href विशेषता दें।

<a ng-click="item.count = item.count+1" href="">Click</a> 
1

यह एक समाधान

<!doctype html> 
<html ng-app> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js">            </script> 
    </head> 
<body> 
    <div ng-init="items = [ 
    {name:'fruit', count:4}, 
    {name:'car', count:1}, 
    {name:'dog', count:2} 
    ]"> 
    <ul> 
    <li ng-repeat="item in items"> 
    <span>Count:</span> 
    <span>{{item.count}}</span> 
    <a ng-click="item.count = item.count + 1">Increment</a> 
    </li> 
    </ul> 
</div> 
</body> 
</html> 
संबंधित मुद्दे