如何从渲染的html向angularjs app添加初始数据

时间:2014-03-28 06:46:48

标签: javascript html json angularjs

我正在创建一个大型AngularJs应用程序,需要用户登录身份验证用户之后,会向他呈现一个页面,稍后会加载后续数据。

有两种方法:

  • 页面加载后的XHR提取
    这意味着在“运行”块或某处发送XHR请求以获取 LoggedIn 用户。对'/api/current_user.json'

  • HTML中嵌入的数据
    为了避免上述方法的初始加载时间,我认为将一些JSON嵌入到Html页面作为<script>标记是很好的。

但是,我无法从module.run块的“脚本”标记中获取此数据 我怎么能这样做?

1 个答案:

答案 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;
};

plnkr