Подтвердить что ты не робот

Как передать переменную $scope одного контроллера другому в AngularJS?

У меня есть это:

app.controller('foo1', function ($scope) {
  $scope.bar = 'foo';
});
app.controller('foo2', function ($scope) {
  // want to access the $scope of foo1 here, to access bar
});

Как бы это сделать?

4b9b3361

Ответ 1

Вы можете использовать службу Angular для обмена переменной через несколько контроллеров.

angular.module('myApp', [])
.service('User', function () {
    return {};
})

Для обмена данными между независимыми контроллерами можно использовать Службы. Создайте службу с моделью данных, которая должна использоваться совместно. Внесите сервис в соответствующие контроллеры.

function ControllerA($scope, User) {
    $scope.user = User;
    $scope.user.firstname = "Vinoth";
}

function ControllerB($scope, User) {
    $scope.user = User;
    $scope.user.lastname = "Babu";        
}

Ответ 2

Вы можете использовать $emit/$broadcast для перевода изменений данных из одной области контроллера в другую. Или просто сохраните эти переменные на $rootScope.

Ответ 3

app.controller('foo2', function ($scope) {
    $scope.$$prevSibling.bar="bar"
});