Как обмениваться данными между контроллерами, используя $ broadcast, $ on и $ emit? - PullRequest
0 голосов
/ 15 сентября 2018

Я новичок в веб-разработке AngularJS.

ШАГ 1. Во время инициализации я получаю информацию для входа на сервер с http-вызова.Скажем, UserName, UserID и некоторая другая информация.

ШАГ 2. После успешного вызова http я хотел бы заполнить объект loginObj, например

$scope.loginObj = { UserID = '', UserName = '', SomeData: '' };

$scope.loginObj.UserID = 1000;

$scope.loginObj.UserName = 'John Doe';

$scope.loginObj.SomeData = 'Some other data';

ШАГ 3. Я хотел бышироковещательная информация об объекте $ scope.loginObj с методом $ rootScope.broadcast.

Все примеры, которые я видел, использовали какую-то кнопку нажатия.Решение без нажатия кнопки.

ШАГ 4. В дочернем контроллере я хотел бы получать передаваемую информацию от родительского контроллера.

    How can I receive this information?

ШАГ 5. Иногда я получаю некоторые дополнительныеинформация на дочернем контроллере.

Как я могу получить эту информацию с дочернего контроллера на родительский контроллер?

Пожалуйста, предоставьте мне решение или укажите несколько сайтов, где я могу получить пример.

1 Ответ

0 голосов
/ 15 сентября 2018

Вместо использования широковещательной рассылки создайте службу angularjs, в которой вы сохраняете информацию для входа в систему, полученную при вызове http, и вы можете добавить эту службу в контроллер, в котором вам нужна информация для входа в систему.

создайте сервис, подобный этому:

/*app is your angular module name*/
app.factory('authFactory',['$state',function( $state){
    var authFactory = {

          currentUser: {},

          setCurrentUser: function(userinfo){

             authFactory.currentUser = userinfo;

            },

          getCurrentUser: function(){

            return authFactory.currentUser;
           }
      };

      return authFactory;

}

в вашем контроллере входа, введите authFactory, затем, как только пользователь войдет в систему, вызовите authFactory.setCurrentUser и передайте объект ({login: userlogin, email: useremail}). Если вам нужен зарегистрированный пользователь на другой странице, просто введите authFactory на этой странице и вызовите authFactory.getCurrentUser ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...