AngularJS和PHP - 使POST数组的内容在应用程序中可用


AngularJS and PHP - make contents of POST array available in the application

事情是这样工作的:

有一个用 C# 编写的移动应用程序(可能不确定,不相关)。它会向站点发送带有一些数据的 POST 请求,例如用户的昵称、电子邮件地址等,比如说mysite.com/index.php。在这个index.php中,我可以通过以下方式访问数据(它在$_POST数组中可用):

<?php echo $_POST["nickname"];?>

我的任务是在mysite.com重建服务,为其添加一些额外的功能等。我决定使用Angular作为前端框架。

现在,我正在尝试做的是使请求中发送的数据在 AngularJS 应用程序中可用 - 事实上我能够这样做,但我不相信这是应该这样做的方式(索引.php我的 Angular 应用程序看起来像这样):

<!DOCTYPE html>
<html lang="en" ng-app="myApp">
  <head>
    <link rel="stylesheet" type="text/css" href="css/normalize.css">
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <script src="lib/angular.min.js"></script>
    <script src="lib/angular-resource.min.js"></script> 
    <script src="js/app.js"></script>
    <script src="js/controllers.js"></script>
    <script src="js/services.js"></script>
    <script src="js/filters.js"></script>
    <script>
      window.data = <?php echo json_encode($_POST); ?>;  <<-- The "hack" is here
    </script>
  </head>
  <body>
    <section ng-view></section>
  </body>
</html>

以及使此数据可用的控制器:

myAppControllers.controller('SomeController', ['$scope', '$rootScope', '$window',
  function($scope, $rootScope, $window) {
    $rootScope.data = $window.data;
}]);

问题:还有其他(更好,更清洁)的方法吗?

我强烈建议查看 AngularPHP 示例项目,它演示了一种在 PHP 中为 angular 构建服务器端 API 的简单方法