2016-07-24 4 views
0

У меня есть 2 точки зрения, каждый из которых имеет контроллер, я хочу, чтобы отправить данные из View1 в VIEW2, когда я нажимаю на «BL» Кнопка:обмен данными между двумя соображениями по angularJS

это View1: enter image description here

и это View2: enter image description here

Я пытался использовать события my try, но Controller2 активируется только тогда, когда я нажимаю на «BL» Кнопка Я думал использовать службу для отправки данных из контроллер1 к контроллеру2, но Я думаю, что это не мой случай поэтому, пожалуйста, есть ли какая-либо помощь, как я могу отправить данные из View1 в VIEW2 благодаря

Edit: это моя вторая попытка:

View1/controller1:

$scope.BLButton = function(){ 


    $scope.foo = Service.foo; 
    Service.foo = '85'; 

    } 
    .factory('Service', function() { 
            var Service = { 
             foo: '85' 
             }; 
             return Service; 
            }); 

View2/Controller2:

//this method is called to display the data in the input Text from a web Service 
$scope.parentmethod = function() { 
    //traitement 
$scope.foo = Service.foo; 
.... 
} 

проблема с моим кодом является то, что метод "parentmethod" из Cont roleller2 никогда не вызывается, когда я нажимаю кнопку «BL»

+2

Существует несколько способов достижения этого (общая служба, компоненты). Отправьте свой код для лучшей помощи. – dfsq

+3

Первое, что вы, как правило, хотите посмотреть, - это использование службы для обмена данными между частями приложения. Ваше изображение не имеет большого значения, пожалуйста, предоставьте [mcve] – charlietfl

+0

Я обновил свой пост Sir – user3821206

ответ

1

Лучший подход - переместить всю вашу бизнес-логику (BL) в сервис, который будет поддерживать состояние приложения. Вы пытаетесь неправильно использовать контроллеры, потому что их единственная цель - склеить презентацию и BL и не сохранять состояние приложения в любой форме. Проблема в том, что контроллеры создаются и уничтожаются при изменении вида, поэтому они не подходят как государственные держатели. В вашем случае вы можете хранить данные в сервисе (который создается и поддерживается все время работы вашего приложения), а затем извлекать его в другом виде на контроллере.

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