javascript - 访问URL参数-PHP和Angular.js

原文 标签 javascript php angularjs

所以我的网站是用于后端的PHP,以及用于前端的AngularJS。很奇怪,我发现我必须在前端使用PHP才能实现某些功能,例如获取URL参数。以下说明;

以以下网址为例

http://www.test.co.uk/search-menu/1/cinamon-soho
http://www.test.co.uk/search-restaurant?location=asokoro&day=today&time=1100

我在同一页面中的Angular代码需要参数位置,日期等。
现在我必须使用下面的线将它们传递到
$scope.l = <?php echo json_encode($_GET['location']); ?>;

我的问题是;
  • 是否可以仅使用Angular来访问这些变量,这样我就可以摆脱PHP的困扰了?
  • 如果可能出现问题1,然后决定将Angular代码从该页面移到我使用
  • 引用的专用.js页面,该如何做
    <script src="http://www.test.co.uk/js/main.js"></script>
    仅供参考

    该网站不是使用AngularJS从头开始构建的。后来将Angular引入前端繁重的PHP中,因此该网站不是 SPA 。没有适当的角度布线。

    谢谢。

    最佳答案

    我将使用如下功能

    function fetchGetVariables() {
      var loc = "http://www.test.co.uk/search-restaurant?location=asokoro&day=today&time=1100";
      // var loc = window.location.href; // Use this in actual use
      var result = {};
    
      var parts = loc.split("?");
    
      if (parts.length > 0) {
        var params = parts[1].split("&");
    
        for (var i = 0; i < params.length; i++) {
          var keyValuePair = params[i].split("=");
    
          var key = keyValuePair[0];
          var value = "";
          if (keyValuePair.length > 0) {
            value = keyValuePair[1];
          } 
    
          result[key] = value;
        }
      }
    
      return result;
    }
    
    console.log(fetchGetVariables());
    

    这给出了输出:
    Object {location: "asokoro", day: "today", time: "1100"}
    

    this小提琴上看到它。

    相关文章:

    javascript - 单击功能在移动设备中无法正常运行

    javascript - 如何使用变量引用对象

    javascript - 确实从另一个构造函数继承会覆盖继承的构造函数的原型链中的现有属性

    javascript - 如何用fillColor填充pdfmake的列背景颜色?

    javascript - Laravel-在数据库中存储多个复选框表单值

    javascript - AngularJS多个嵌套的ng-repeats

    php - 在黑莓上运行apache,php和mysql [关闭]

    javascript - 从B域到A域的PHPSESSID使用Chrome和Firefox,而不是Safari和IE

    javascript - 推送到数组时indexOf()== -1似乎不起作用

    javascript - 如何允许访问控制标头访问跨域的远程API?