Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
17
rated 0 times [  18] [ 1]  / answers: 1 / hits: 166478  / 12 Years ago, sat, january 19, 2013, 12:00:00

I'm trying to deal with the issue of scope inside of an ng-repeat loop - I've browsed quite a few questions but have not quite been able to get my code to work.



Controller code:



function Ctrl($scope) {
$scope.lines = [{text: 'res1'}, {text:'res2'}];
}


View:



<div ng-app>
<div ng-controller=Ctrl>
<div ng-repeat=line in lines>
<div class=preview>{{text}}{{$index}}</div>

</div>
<div ng-repeat=line in lines>
<-- typing here should auto update it's preview above -->
<input value={{line.text}} ng-model=text{{$index}}/>
<!-- many other fields here that will also affect the preview -->
</div>
</div>
</div>


Here's a fiddle: http://jsfiddle.net/cyberwombat/zqTah/



Basically I have an object (it's a flyer generator) which contains multiple lines of text. Each line of text can be tweaked by the user (text, font, size, color, etc) and I want to create a preview for it. The example above only shows the input field to enter text and I would like that to automatically/as-you-type update the preview div but there will be many more controls.



I am also not sure I got the code right for the looping index - is that the best way to create a ng-model name inside the loop?


More From » angularjs

 Answers
20

For each iteration of the ng-repeat loop, line is a reference to an object in your array. Therefore, to preview the value, use {{line.text}}.



Similarly, to databind to the text, databind to the same: ng-model=line.text. You don't need to use value when using ng-model (actually you shouldn't).



Fiddle.



For a more in-depth look at scopes and ng-repeat, see What are the nuances of scope prototypal / prototypical inheritance in AngularJS?, section ng-repeat.


[#80765] Thursday, January 17, 2013, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
keyonnal

Total Points: 746
Total Questions: 103
Total Answers: 116

Location: Moldova
Member since Sat, Aug 6, 2022
2 Years ago
;