I have an application that has two forms that are lists of buttons and a form with a list of labels. I choose a person, choose a phone, and on the third form I show a list of phones and their associated people (location). Is it possible to set a variable with ng-click
inside an ng-repeat
block? I tried settings a variable _person to be equal to the the button text, which would be {{person}}
, but _person doesn't seem to be set to anything when I print it on the next form. I'm also not sure if I used ng-init
correctly in the first <div>
, and should I be using ng-model
at all?
<div ng-init=showSelectUser=true; _person=''>
<div class=selectUser ng-show=showSelectUser>
<h2>Who are you?</h1>
<ul ng-click=showSelectUser=false; showDeviceForm=true;>
<li ng-repeat=person in people>
<a href=# role=button ng-click=_person={{person}}>{{person}}</a>
</li>
</ul>
</div>
<div class=selectDevice ng-show=showDeviceForm ng-click=showDeviceForm=false; showDeviceList=true>
<p>person: {{_person}}</p>
<h2>Which phone?</h2>
<ul>
<li ng-repeat=device in devices>
<a class=btn btn-default href=# role=button ng-click=device.location=_person>{{device.name}}</a>
</li>
</ul>
</div>
<div class=devicesView ng-show=showDeviceList>
<ul>
<li ng-repeat=device in devices>
<h3>{{device.name}}</h3>
<h4 class=deviceLocation>{{device.location}}</h4>
</li>
</ul>
</div>
</div>
angular.module('devicesApp')
.controller('MainCtrl', function ($scope) {
$scope.devices = [
{name: 'iPhone 4', location: 'Desk'},
{name: 'iPhone 5', location: 'Desk'},
{name: 'iPhone 6', location: 'Desk'},
];
$scope.people = [
'John',
'Scott',
'Adam'
];
});