У меня есть СЧ, который выглядит примерно так:Bind данные запроса HTTP к другому контроллеру
<div class="collapse navbar-collapse" id="admin-side-nav" ng-controller="AdminNav">
<ul class="nav nav-pills nav-stacked">
<li><a href="/admin/leaderboard/{{gameId}}">Leaderboard</a></li>
<li><a href="/admin/newsFeed/{{gameId}}">News Feed</a></li>
</ul>
</div>
Я тогда с помощью маршрутов, которые загружаются в шаблон и с помощью Ajax запроса, чтобы получить данные для ввода в шаблоне. Возвращаемый запрос имеет идентификатор, который я хотел бы связать с gameId
, но я не могу понять, как это делается.
Вот Javascript, чтобы сделать это:
var console = angular.module('Console', ["ngRoute", "highcharts-ng"]);
console.config(function($routeProvider, $locationProvider){
$routeProvider.when('/admin/:gameid', {
templateUrl: 'admin/game.html',
controller: 'Game'
});
}).controller("Game", function($scope, $http){
$http.get("http://admin.gmserver.net/mypage").success(function(data){
$scope.games = data;
$scope.gameId = data._id;
});
}).controller("AdminNav", function($scope, $location){
$scope.isActive = function(viewLocation){
return viewLocation === $location.path();
};
});
Я хотел бы связать эту линию от Game
контроллера $scope.gameId = data._id;
до значения в контроллере AdminNav
. Как передать данные с контроллера Game
на контроллер AdminNav
?
Потенциальный дубликат: http://stackoverflow.com/questions/20181323/passing-data-between-controllers-in-angular- js – Devnetics
как переместить '$ http' в' службу', чтобы его можно было использовать в любом 'controller'? может быть хорошей идеей «кэшировать» это тоже так: [link] (http://stackoverflow.com/questions/14117653/how-to-cache-an-http-get-service-in-angularjs) –