2015-05-17 7 views
0

У меня есть СЧ, который выглядит примерно так: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?

+0

Потенциальный дубликат: http://stackoverflow.com/questions/20181323/passing-data-between-controllers-in-angular- js – Devnetics

+0

как переместить '$ http' в' службу', чтобы его можно было использовать в любом 'controller'? может быть хорошей идеей «кэшировать» это тоже так: [link] (http://stackoverflow.com/questions/14117653/how-to-cache-an-http-get-service-in-angularjs) –

ответ

0

Вы хотите использовать:

1) $rootScope.gameId = data._id

2) Служба, которая добавляет и получает значение

3) $ радиопередачу до $ на

4) местный номер

$localstorage.setObject('gameId', data._id);

и в AdminNav контроллера:

`var yourNewValue = $localstorage.getObject('gameId'); 

См http://learn.ionicframework.com/formulas/localstorage/ для определения $ LocalStorage

Смежные вопросы