Задать вопрос
@Archusha
https://agaltsovav.ru/

Как в AngularJS организовать постояную передачу данных через фабрику?

Есть фабрика (Storage), через которую хочу передавать некоторые данные веденые пользователем ($scope.test)
из контроллера (View1Ctrl) в контроллер (View2Ctrl).

Так как это вводимые пользователем данные, то на момент создания контроллера их еще нет и данные передаются при активации сначала функции $scope.testClick1, а потом $scope.testClick2 - только после этого получаем в втором контроллере (View2Ctrl) необходимые нам данные.

Как это можно организовать (автоматизировать), подразумевается что кнопочки отправить (активирующие $scope.testClick1 быть не должно)?

angular.module('myApp',[])
    .factory('Storage', function () {
        var _from = '';
        return {
            setFrom: function (from) {
                _from = from;
            },
            getFrom: function () {
                return _from;
            }
        }
    })

    .controller('View1Ctrl', ['$scope', 'Storage', function($scope, Storage) {
        $scope.test="";
        $scope.testClick1 = function(){
            var tStorage = Storage;
            tStorage.setFrom($scope.test);
            console.log("set", $scope.test);
        };
    }])

    .controller('View2Ctrl', ['$scope', 'Storage', function($scope, Storage) {
        $scope.testClick2 = function(){
            $scope.test = Storage.getFrom();
        };
    }]);
  • Вопрос задан
  • 188 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
EnChikiben
@EnChikiben
watch например повесить на свойство test, и если они поменяется то выполнится функция

$scope.$watch('test', function(){
  var tStorage = Storage;
  tStorage.setFrom($scope.test);
  console.log("set", $scope.test);
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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