2016-02-25 3 views
-3

Я делаю один угловой проект, в котором я загружаю новый вид, вызывая функцию. до этого все прекрасно. теперь мое требование: я хочу, чтобы некоторые данные передавались новому представлению из одной и той же функции. используя тот же контроллер. Я показываю здесь демо-код.как делиться данными между представлениями в angualr

$scope.passID = function(id){ 
 
    console.log(id); 
 
    $state.go("view", {id: $scope.id }); 
 
}

+0

Использование фабрики для хранения общих значений, которые вы хотите предоставить, и вводить их в контроллеры любых видов, которые вы хотите – Nijeesh

ответ

0

Если вы используете один и тот же контроллер, то $scope переменные могут быть доступны в обоих видах. Но, если у вас есть 2 представления с 2 controllers, можно разделить $scope переменные (данные) между controllers через услуг и завод .Но, то $scope переменные являются локальными для controller себя так установить данные в сервис или завод, чтобы узнать об этой конкретной переменной. Я предпочитаю использовать заводскую, легкую и гладкую, как масло. Если вы используете службу фабрики в отдельном файле, вам необходимо включить файл в index.html.

app.controller('Ctrl1', function($scope, myService, $state) { 
    $scope.variable1 = "One"; 
    myService.set($scope.variable1); 
    $state.go('app.thepagewhereyouwanttoshare'); //go to the page where you want to share that variable. 
}); 

app.controller('Ctrl2', function($scope, myService) { 
    console.log("shared variable " + myService.get()); 
}); 
.factory('myService', function() { 
    function set(data) { 
     products = data; 
    } 

    function get() { 
     return products; 
    } 

    return { 
     set: set, 
     get: get 
    } 

}) 
Смежные вопросы