J'ai une application angulaire configurée comme suit. Ng-repeat contenant des éléments li avec 2 entrées chacun (enfin plus que 2 mais pour cette démo j'en ai 2) .
La directive définit le contrôleur.
HTML
<li ng-repeat="lw in lw_list" my-lw ng-model="lw" >
<input my-cell ng-init="init(lane , $index , 'name')" ng-class="'lib_name inline_div'" type='text' value="{{ lw.library.name }}" >
<input my-cell ng-init="init(lane , $index , 'volume') "ng-class="'number_field'" type="number" ng-model='volume' />
</li>
javascript
angular.module('Demo').directive("myCell", function(CellStore){
return {
controller : 'CellCtrl' ,
};
}) ;
angular.module('Demo').controller('CellCtrl' , function($scope , CellStore){
$scope.init = function(lane, row, column){
$scope.row = row ;
$scope.column = column ;
console.log("init" , $scope.$parent );
CellStore.addCell( lane.lane, row, column , $viewValue ) ;
} ;
}) ;
L'idée est donc que lorsque chaque entrée est créée, elle appelle la fonction init, qui stocke la valeur de l'entrée dans un hash imbriqué (pour la récupérer plus tard). Cependant, je ne sais pas comment accéder à la variable $viewValue (la valeur que les entrées contiennent) à partir du contrôleur.