事情是这样工作的:
有一个用 C# 编写的移动应用程序(可能,不确定,不相关)。它向一个站点发送一个 POST 请求,其中包含一些数据,例如用户的昵称、电子邮件地址等,比如说mysite.com/index.php
. 在这种情况index.php
下,我可以通过这种方式访问数据(它在$_POST
数组中可用):
<?php echo $_POST["nickname"];?>
我的任务是重建服务mysite.com
,添加一些额外的功能等等。我决定使用 Angular 作为前端框架。
现在,我要做的是使请求中发送的数据在 AngularJS 应用程序中可用 - 事实上我能够这样做,但我不相信这是应该完成的方式(index.html)。我的 Angular 应用程序的 php 看起来像这样):
<!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;
}]);
问题:还有其他(更好,更清洁)的方法吗?