我正在创建一个大型AngularJs应用程序,需要用户登录 在身份验证用户之后,会向他呈现一个页面,稍后会加载后续数据。
有两种方法:
页面加载后的XHR提取:
这意味着在“运行”块或某处发送XHR请求以获取 LoggedIn 用户。对'/api/current_user.json'
HTML中嵌入的数据
为了避免上述方法的初始加载时间,我认为将一些JSON
嵌入到Html页面作为<script>
标记是很好的。
但是,我无法从module.run
块的“脚本”标记中获取此数据
我怎么能这样做?
答案 0 :(得分:4)
您可以使用window object
或使用ng-init
将呈现的HTML中的数据传递给Angular:
窗口对象
将您的值分配到&#34;窗口&#34;宾语。在Angular中注入$ window服务,该服务引用窗口对象并访问存储的值。
示例:
在您的HTML文件中:
<script>
window.init = { name: "John Doe" };
</script>
在控制器中(对于运行块应该类似):
app.controller('MainCtrl', ['$scope', '$window', function($scope, $window) {
$scope.user = $window.init;
...
}]);
<强>伍-INIT 强>
创建一个为您初始化值的函数。
在HTML中:
<body ng-controller="MainCtrl" ng-init="initialize( { name: 'Jane Doe' } )">
在控制器中:
$scope.initialize = function( json ) {
$scope.user2 = json;
};