2015-08-18 2 views
0

Привет У меня есть файл сценария Java, который управляет всеми контроллерами. У меня также есть две html-страницы, которые связывают друг с другом при отправке формы, мне нужно передать значение другому контроллеру при нажатии кнопки отправки.Угловой контроллер передает данные другому контроллеру при изменении страницы

Я могу войти значение, если не направить на другую страницу, но когда я направляю на другую страницу, значение становится «неопределенным»

вот мой два угловых контроллер

app.controller('createworkshopController', function($rootScope, $scope, $http) { 

    //get bunch of stuff 

    $scope.submitWorkshop = function() {  

     $http({method:'POST', data:$scope.result, url: 'url for post method'}) 
      .success(function(data) { 
       $rootScope.ID = data.value; 
       console.log($rootScope.ID); //this log return the value 
      }); 
     }; 
}); 

Но когда я переадресовать на другую страницу значение становится неопределенным здесь представляет собой контроллер для второй страницы

app.controller('showworkshopController', function($rootScope, $scope, $http) { 

    console.log($rootScope.ID); //this becomes undefined 

    $http.get('some_url?Id=' + $rootScope.ID) 
    .success(function(data) { 
     //do bunch of stuff 
    }); 

    //do bunch of stuff 
}); 

моя первая страница HTML имеют представить б utton написано так:

<a href="second-page.html" type="submit" class="btn btn-default" ng-click="submitWorkshop()">Submit</a> 
+0

Я думаю, что вы создаете функцию на втором контроллере и вызываете ее нажатием кнопки и печатаете значение в журнале консоли. Если это возвращаемое значение означает, что ваш второй контроллер console.log запускается до того, как будет выполнен успешный запуск первого контроллера. – Viraj

ответ

1

Ваша проблема заключается в том, что ваше приложение будет повторно инициализироваться на странице обновления/перенаправления.

Вам необходимо построить это как приложение на одну страницу, а не выполнять перенаправление, или сохранить значение в куки или локальном хранилище перед перенаправлением и получить при загрузке второй страницы.

В основном угловой действительно предназначен для создания приложений, а не для добавления в стандартные веб-формы.

+0

Я понимаю, что одностраничное приложение будет работать отлично, но с временным ограничением мы не сможем это сделать. Поэтому, как я могу сохранить это значение в виде файлов cookie? –

+0

Я бы использовал для этого местное хранилище. http://diveintohtml5.info/storage.html Имейте в виду, что значения будут сохраняться между сеансами при использовании этого, поэтому вы можете очистить значения на первой странице, если они существуют – ricick

+0

Могу ли я использовать угловое $ cookie getter и setter для достижения тот же результат? –

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