bonjour,

j'ai 2 controlleurs dont le premier sert à afficher la liste des classes:

.controller("classNameCtrl", ["$scope", "$http",function ($scope, $http) {

    $http({method: 'GET', url: 'URL/Classes'})

       .success(function (data) {
           $scope.posts = data; // response data  
           $scope.countSelected = $scope.posts[0].Id;    
           console.log('Selected count ID: ' + $scope.countSelected);
           console.log("success");
        })

        .error(function (data, status, headers, config) {
           console.log("data error ...");
                            });

        $scope.onchange = function(id) {
        console.log("id:"+$scope.countSelected);
           } }])

et le 2ème controlleur sert à récupérer l'id de la liste des classes séléctionné et l'envoyer en tant que service rest:

.controller("etudajoutCtrl", ["$scope", "$http", function ($scope, $http) {
        $scope.listetud = function () {

          $http({method: 'POST',
          url:'URL/Students/ajout' ,
          data:'{"FirstName":"tomy","ClassId": "'+$scope.countSelected+'"}'})
          .success(function (data) {
            console.log("success");
             }).error(function (data, status, headers, config) {
            console.log("data error ...");
             });}
    }])

et voici le code HTML:

<div ng-controller="classNameCtrl">
       <select ng-model="countSelected" ng-change="onchange(posts[countSelected-1])">
        <option ng-repeat="post in posts track by $index" value="{{$index}}" >{{post.Libel}}</option>
    </select>
    </div>  
</section>

le problème est que j'arrive à afficher l'id séléctionnée dans le console mais pas l'envoyer au controlleur etudajoutCtrl pour l'envoyer dans la requête POST,$scope.countSelected me retourne undifined!!
merci pour l'aide

2 réponses


hana005
Auteur

je travaille avec angularjs

Tu as essayer en injectant ton controlleur en depandance du 2eme?

edit: il serait plus propre d'avoir tes data rendu par un service et tu injecte ton service dans les contrôleur pour récupérer les données