Przekazuję do widoku listę obiektów które mają kilka atrybutów.
W JSP drukuję to za pomocą pętli <c:forEach ... >. Wydrukowane atrybuty mają tag: <form:input ..... > który posłuży do edycji danych.
Teraz chciałbym z użyciem ng-model (Angular) pokazać dane jakie są zapisane w przekazanej liście.
Problem polega na tym, że nie mogę przypisać do ng-model zmiennej JSTL tak aby się zmieniała ona za każdym obrotem pętli.
ng-model="${address.street}" - mimo różnych obiektów i różnych wartości dla tego samego argumentu - wartości są TAKIE SAME. Czyli pętla na ng-model nie działa. Za to bez problemu działa na normalnych tagach z html czy jstl.
Sprawa wygląda tak, że dla wszystkich obrotów pętli drukuje się ten sam atrybut z jednego obiektu.
<c:set var="count" value="0" scope="page" />
<c:forEach items="companyAddressessDB" var="address">
<c:set var="count" value="${count+1}" scope="page" />
<table class="table table-bordered ">
<thead>
<tr>
<th>Fields</th>
<th>Edit</th>
</tr>
</thead>
<tbody>
<tr>
<td><label for="addresses[${count}].street"
class="col-sm-12 control-label">Street:</label></td>
<td><div class="form-group">
<div class="col-sm-12">
<form:input path="addresses[${count}].street"
__ng-model="${address.street}"__
cssClass="form-control" />
</div>
</div></td>
</tr>
<tr>
<td><label for="addresses[${count}].streetNumber"
class="col-sm-12 control-label">Street Number:</label></td>
<td><div class="form-group">
<div class="col-sm-12">
<form:input path="addresses[${count}].streetNumber"
cssClass="form-control" />
</div>
</div></td>
</tr>
<tr>
<td><label for="addresses[${count}].zipcode"
class="col-sm-12 control-label">Zipcode:</label></td>
<td><div class="form-group">
<div class="col-sm-12">
<form:input path="addresses[${count}].zipcode"
cssClass="form-control" />
<form:errors path="addresses[${count}].zipcode" />
</div>
</div></td>
</tr>
<tr>
<td><label for="addresses[0].city"
class="col-sm-12 control-label">City:</label></td>
<td><div class="form-group">
<div class="col-sm-12">
<form:input path="addresses[${count}].city"
cssClass="form-control" />
<form:errors path="addresses[${count}].city" />
</div>
</div></td>
</tr>
</tbody>
</table>
</c:forEach>
Jeżeli chodzi o obiekty które nie są przekazywane jako lista to działające rozwiązanie mam takie:
//Angular
var app = angular.module('myApp', []);
app.controller('showData', function($scope) {
$scope.companyName = "${companyDB.companyName}";
$scope.nip = "${companyDB.nip}";
$scope.phone = "${companyDB.phone}";
$scope.email = "${companyDB.email}";
$scope.email
});
Proszę o wskazówki / pomoc.