【问题标题】:Get Information from one page to another with angular routing使用角度路由从一页到另一页获取信息
【发布时间】:2017-08-26 03:01:55
【问题描述】:

图像一个页面,该页面称为“仪表板”。在仪表板中,有一个下拉菜单,其中包含由 PHP 脚本列出的项目,它们的计数因数据库结果的数量而异。

现在,当用户单击菜单中的一项时,它应该将他重定向到配置页面,其中包含一些数据(id、类型)。听起来很简单,但使用的重定向方法是用 angular 制作的,因此它使用 URL 哈希,无需刷新站点。配置页面的 URL 如下所示:

https://www.example.com/index.php#/configure

...我想得到一些数据。我们看到的站点只是一个空白站点,在文件树中名为“configuration.php”,但由于“configure.module.js.php”中的角度代码,您在 URL 中看不到它",它只是重定向用户,为他们提供正确的网站:

(function () {
  'use strict';

  angular.module('BlurAdmin.pages.configure', [])
      .config(routeConfig);

  /** @ngInject */
  function routeConfig($stateProvider) {
    $stateProvider
        .state('configure', {
          url: '/configure',
          title: 'Configuration',
          templateUrl: 'app/pages/configure/configure.php',
          controller: 'addCtrl',
        });
  }

})();

所以我假设,如果我想将数据获取到我的站点,我需要某种 GET 请求。我发现,如果我像这样使用 GET 请求,它将起作用:

https://www.example.com/index.php?something=works&omg=itWorks#/configure

所以我的 index.php 将使用 GET 数据并将它们写入 SESSION,然后可以在 configuration.php 中使用!

嗯,它工作,有点...但主要的是,它都是有角度的,所以 NO SITE REFRESH ATALL! 这意味着我的文件都不会被刷新,所以在我再次单击该按钮,该站点将不再获得 GET 请求,它只会将我重定向到 configuration.php,而不处理新数据...它将保留第一个 GET 参数和 SESSION。

所以我的问题来了。怎么做?我真的需要一键将数据发送到 configuration.php,无需刷新站点,而是工作和更新。

【问题讨论】:

  • Angular 是一个客户端“框架”,它旨在使用 Ajax 从服务器请求数据并将其加载到 HTML 模板中。如果您尝试将数据传递到 php 文件并使用 Angular 来呈现它,那么 Angular 路由不适合您。您应该将 HTML 模板传递给 Angular,并向服务器发出 Ajax 请求以获取任何必要的数据。或者不使用 Angular 的路由重定向到一个新的 PHP 页面。
  • 一个不会“将数据获取到站点”。有人使用$http.get站点获取数据,$http.post将数据发布到站点。如需更多信息,请参阅MDN Web Techology Reference - HTTP request methods

标签: javascript php angularjs url routing


【解决方案1】:

在 html 中你添加 ui-sref 来喜欢这个

ui-sref="configure/({id: valueid})

在文件配置中

url:'/configure/:id'

在你的控制器中添加这样的 $stateParams

 function addCtrl($scope,$http,$stateParams)

并使用 ajax 获取

   var params = $.param({'id':$stateParams.id})

        $http({
                    method:'GET',
                    url:'yoururl?id=' + $stateParams.id,
                    data:params,
                    headers : { 'Content-Type': 'application/x-www-form-urlencoded' }

                }).then(onSuccess);

【讨论】:

    猜你喜欢
    • 2011-07-12
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多