Задать вопрос

Как передавать данные между контроллерами в angularjs?

Есть несколько контроллеров в ангуляре.
Как мне из rootScop-а или из одного контроллера обратиться к значению/функции другого?


- - - -
myApp.controller('AdminController', function($scope,$http,$rootScope) {
$scope.get_data= function () {
alert("я из AdminController");
}
$scope.get_data_in_SettingsController= function () {
//как мне здесь сослаться на SettingsController?
}
}
myApp.controller('SettingsController', function($scope,$http,$rootScope) {
$scope.get_data= function () {
alert("я из SettingsController");
}
}
  • Вопрос задан
  • 889 просмотров
Подписаться 2 Оценить 2 комментария
Решения вопроса 2
Используйте фабрики.
var myApp = angular.module('myApp', []);

// make a factory to share data between controllers
myApp.factory('Data', function(){
  var data = {
    firstName: ''
  };

  return {
    getFirstName: function () {
      return data.firstName;
    },
    setFirstName: function (firstName) {
      data.firstName = firstName;
    }
  };
});
Ответ написан
Комментировать
dunmaksim
@dunmaksim
Технический писатель
Создайте сервис, который будет хранить общие для всех контроллеров методы / данные, а потом используйте его. В качестве одного из параметров такой метод может принимать текущий $scope.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы