当页面发生变化时,Angular控制器将数据传递给其他控制器

Angular Controller pass data to other controller when page changes

本文关键字:控制器 数据 其他 Angular 变化      更新时间:2023-09-26

嗨,我有一个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有一个像这样写的提交按钮

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

你的问题是你的应用程序会在页面刷新/重定向时重新初始化。

你需要将其构建为一个单页应用程序,而不是进行重定向,或者在重定向之前将值存储在cookie或本地存储中,并且在加载第二页时检索。

基本上angular是用来构建应用程序的,而不是添加到标准的web表单中。