目前,我们正在将应用程序从JSP迁移到AngularJS。组织决定一次只做一个模块。我们遇到的挑战之一是将用户数据从JSP传递到AngularJS (例如,index.html)。
我们希望如果调用AngularJS模块,系统将重新路由到由AngularJS管理的index.html。
我的问题是,我们可以用什么方法将用户数据(例如用户名)从JSP传输到index.html。
可能的情况:
提亚
发布于 2015-05-29 10:53:28
理想情况下,我不建议将username和password注入index.html以供angularjs控制器/服务使用。如果用户在加载角托管页面时已经通过身份验证,那么要么注入授权令牌,要么安装浏览器将自动发送的cookie (假设jsp应用程序和角应用程序位于同一域中)。
现在,谈到为angularjs注入数据,我可以想到两种方法(我推荐第二种方法,因为它不会污染全球范围)
$window进行访问。就像。让服务器端.jsp使用全局变量呈现一个脚本标记,如并使用$window在控制器中访问它。
angular.module('yourapp').controller('YourCtrl', $window){
console.log($window.pass);
}type="text/preloaded"的脚本标记中,并通过$preloaded服务将其提供给控制器。让jsp输出如下所示
<script type="text/preloaded">
{
"data": "point"
}
</script>然后把它放在你的控制器里,如下所示
angular.module('app', ['gs.preloaded'])
.controller('SomeCtrl', function ($preloaded) {
// do something with $preloaded.
$preloaded; // => { data: "point", another: { point: "of data" } }
});记住将预加载的脚本放在控制器脚本之前,这样才能正常工作。从医生那里
注意:您的脚本标记必须在使用$preloaded之前运行,因此我建议将它们放在文档的头上。
https://stackoverflow.com/questions/30526999
复制相似问题