页面更改时,Angular Controller将数据传递给其他控制器

时间:2015-08-18 01:32:46

标签: javascript html angularjs angularjs-controller

您好我有一个控制所有控制器的Java脚本文件。我还有两个html页面,在提交表单时将一个链接到另一个,我需要在按下提交按钮时将值传递给另一个控制器。

如果我不指向另一个页面,我可以记录该值,但是一旦我指向另一个页面,值就变为'undefined'

这是我的两个角度控制器

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>

1 个答案:

答案 0 :(得分:1)

您的问题是您的应用会重新初始化页面刷新/重定向。

您需要将其构建为单页应用,而不是重定向,或者在重定向之前将值存储在Cookie或本地存储中,并在加载第二页时检索。

基本上,angular实际上是用于构建应用程序,而不是作为标准Web表单的添加。