【发布时间】:2017-08-26 03:01:55
【问题描述】:
图像一个页面,该页面称为“仪表板”。在仪表板中,有一个下拉菜单,其中包含由 PHP 脚本列出的项目,它们的计数因数据库结果的数量而异。
现在,当用户单击菜单中的一项时,它应该将他重定向到配置页面,其中包含一些数据(id、类型)。听起来很简单,但使用的重定向方法是用 angular 制作的,因此它使用 URL 哈希,无需刷新站点。配置页面的 URL 如下所示:
...我想得到一些数据。我们看到的站点只是一个空白站点,在文件树中名为“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