передать более одной переменной в angularjs?

app.factory('dataPassingService', function() {
var savedData = {};
function set(data) {
    savedData = data;
}
function get() {
    return savedData;
}

return {
    set: set,
    get: get
}
});

контроллер1

$scope.text = '9';
     dataPassingService.set($scope.text);

контроллер2

 $scope.mes = dataPassingService.get();
 alert("the scope is "+scope.mes);

Я передаю $scope.text с контроллера 1 на контроллер 2, используя app.factory, и он отлично работает. я хотел бы передать больше областей вместе с контроллера 1 на контроллер 2, например, я хотел бы передать $scope.text = '9' и scope.text1 = '10', а затем передать его контроллеру 2 с помощью datapassingService.get() .Заранее спасибо


person Antonis    schedule 08.02.2016    source источник


Ответы (1)


Вы можете передать ключ для уникальной идентификации каждого отдельного фрагмента данных, например:

app.factory('dataPassingService', function() {
    var savedData = {};

    function set(key, data) {
        savedData[key] = data;
    }

    function get(key) {
        return savedData[key];
    }

    return {
        set: set,
        get: get
    }
});

Применение:

Контроллер 1

$scope.text = '9';
dataPassingService.set("myKey", $scope.text);
dataPassingService.set("message", "foo");

Контроллер 2

$scope.mes = dataPassingService.get("myKey");
$scope.message = dataPassingService.get("message");
alert("the scope is " + $scope.mes); // the scope is 9
person Seaal    schedule 08.02.2016