передать дату между двумя контроллерами, используя rootcope angular js - PullRequest
0 голосов
/ 16 апреля 2020

Я использую $ rootScope, чтобы поделиться своими ценностями. пожалуйста, проверьте мой код

пользовательский контроллер (пользователь. js)

var app = angular.module('myApp', []);
app.controller('user', function($scope,$rootScope) {
 $rootScope.test = "TEST";
});

клиентский контроллер (клиент. js)

app.controller('customer', function($scope,$rootScope) {
   $scope.value = $rootScope.test;
            alert($scope.value);
});

этот код кажется будет хорошо. но результат не определен. мне также нужно хранить все данные внутри контроллера.

мой результат enter image description here

как правильно передать это значение

1 Ответ

1 голос
/ 17 апреля 2020

Вместо пользователя $rootScope для обмена некоторыми данными между этими контроллерами, вы также можете использовать сервис. Вот пример:

(function () {
    'use strict';

    angular.module('app', []);

    angular.
        module('app')
        .service('contextService', [function () {
            var context = {
                "foo": "bar",
                "hello": "boys"
            };
            var service = {
                getContext: function () {
                    return context;
                },
                getContextValue: function (key) {
                    return context[key];
                },
                setContextValue: function (key, value) {
                    context[key] = value;
                }
            }
            return service;
        }])
        .controller('userController', ['$scope', 'contextService', function ($scope, contextService) {
            var vm = this;
            vm.context = contextService.getContext();

            contextService.setContextValue("foo", "baz");
        }])
        .controller('customerController', ['$scope', 'contextService', function ($scope, contextService) {
            var vm = this;
            vm.context = contextService.getContext();

            vm.updateContext = function (key, value) {
                contextService.setContextValue(key, value);
            }
        }])

})();
<!DOCTYPE html>


  
    
    
    
  
  
    
      userController
      
        foo = {{ vm.context.foo }}
        hello = {{ vm.context.hello }}
      
customerController
        foo = {{ vm.context.foo }}
      
Обновить контекст привет значение
...