envoyer une valeur d'un select option d'un controlleur à un autre

Par hana005, il y a 10 ans


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, il y a 10 ans

je travaille avec angularjs

Defy, il y a 10 ans

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