如何使用post方法重定向并传递角度js中的数据

时间:2016-11-23 03:57:14

标签: python angularjs flask

我想重定向并将一些数据传递给其他页面。但不使用查询字符串而不传递URL中的数据

(function() {
var app = angular.module('PlateformApp', [])


    app.controller('PlateformController', function ($scope,$window) {
        //This will hide the DIV by default.
        $scope.IsVisible = false;
        $scope.ShowHide = function (platform) {
            //If DIV is visible it will be hidden and vice versa.
            $scope.IsVisible = $scope.IsVisible ? true : true;
            //alert(platform);
            document.getElementById("platform").value = platform;
            var myEl = angular.element( document.querySelector( '#plat_val' ) );
            myEl.text(platform); 
        }

        $scope.storeAppWindow = function()
        {

            //store_url = $scope.storeUrl;
            test_bc_url = ""
            text_sh_url = ""
            platform_val = document.getElementById("platform").value;

            $http.get("/user/installedapp")
              .then(function(response) {
                  $scope.myWelcome = response.data;
            });

            if (platform_val == "BC")
                $window.open(test_bc_url,  "popup", "width=500,height=400,left=10,top=50");
            else if (platform_val == "Sh")
                $window.open(text_sh_url,  "popup", "width=500,height=400,left=10,top=50");

        }
    });

})();

这里它将打开新窗口,但我想在另一个页面中传递platform_val text_sh_url url。我在python中使用flask。

1 个答案:

答案 0 :(得分:0)

您可以使用$stateParams,使用Storages,使用factories or services,通过各种方法传递数据。您可以在我的答案中找到使用存储的示例:sharing data using storages

(function() {
  var app = angular.module('PlateformApp', [])
  app.factory('newService', function() {
    function set(data) {
      datatosend = data;
    }

    function get() {
      return datatosend;
    }

    return {
      set: set,
      get: get
    }
  });
  app.controller('PlateformController', function($scope, $window, newService) {
    //This will hide the DIV by default.
    $scope.IsVisible = false;
    $scope.ShowHide = function(platform) {
      //If DIV is visible it will be hidden and vice versa.
      $scope.IsVisible = $scope.IsVisible ? true : true;
      //alert(platform);
      document.getElementById("platform").value = platform;
      var myEl = angular.element(document.querySelector('#plat_val'));
      myEl.text(platform);
    }

    $scope.storeAppWindow = function()
    {

      //store_url = $scope.storeUrl;
      test_bc_url = ""
      text_sh_url = ""
      platform_val = document.getElementById("platform").value;

      $http.get("/user/installedapp")
        .then(function(response) {
          $scope.myWelcome = response.data;
        });

      if (platform_val == "BC") {
        $window.open(test_bc_url, "popup", "width=500,height=400,left=10,top=50");
      }
      else if (platform_val == "Sh") {
        var data = {
          'platform_val': platform_val,
          'text_sh_url ': text_sh_url
        };
        newService.set(data);
        $window.open(text_sh_url, "popup", "width=500,height=400,left=10,top=50");
      }

    }
  });

})();

并且,在您要获取数据的页面中。只需在该页面的控制器中注入newService并使用newService.get(data)

app.controller('pageController',function($scope,newService){
   var datafromanothercontroller = newService.get(data); 
   console.log(datafromanothercontroller );
})