Je suis nouveau dans angular et je me demande comment je peux partager une variable entre contrôleurs dans angular. J'utilise les scripts suivants -
Dans Main.js :
function MainCntl($scope) {
---code
}
function SearchCtrl($scope, $http) {
$scope.url = 'http://10.0.0.13:9000/processAdHoc';
$scope.errorM = "No results";
$scope.search = function() {
$http.post($scope.url, { "data" : $scope.keywords}).
success(function(data, status) {
$scope.status = status;
$scope.data = data;
$scope.result = data;
alert('yes');
})
.
error(function(data, status) {
$scope.data = data || "Request failed";
$scope.status = status;
alert('no');
$scope.result = "failed";
});
};
}
Dans Index.html
<body ng-controller="MainCntl" >
---code
<div ng-controller="SearchCtrl">
<form class="well form-search">
<div class="ui-widget">
<label for="tags"></label>
<a ng-click="search()"><input type="image" src="../../images/search1.png" class="searchbox_submit" /></a>
<input ng-model="keywords" placeholder="Shadow Search" id="tags" class="input-medium search-query rounded" />
</div>
</form>
</div>
---code
<p ng-model="result">
{{result}}
</p>
</body>
Tout fonctionne bien avec l'ajax, j'envoie des données et je reçois une réponse, ma question est la suivante :
Dans la fonction SearchCtrl, j'ai une variable appelée $scope.result qui est ensuite mentionnée dans Index.html. Si j'insère le code html qui contient cette variable dans le contrôleur SearchCtrl, cela fonctionne bien, mais si je le place dans le contrôleur MainCtrl, cela ne fonctionne pas. Comment puis-je partager cette variable entre les contrôleurs ?
Merci d'avance