角度变量初始化

时间:2015-01-06 20:10:50

标签: javascript angularjs sails.js

我在角度控制器中有一个变量,$ scope.abc。

我有Sails作为后端。

$ scope.abc的初始值可以在生成页面时由后端确定。页面显示给用户后,用户可以更改$ scope.abc,也可以不更改。

我可以有后端生成一个完整的静态页面,并让后端查询$ scope.abc的初始值。我认为没有必要,因为初始值可以在页面生成时确定,并且应该作为页面的一部分。

问题是:如何在生成网页时初始化$ scope.abc?有没有办法向angular js文件提供数据,类似于res.view(“”,data)?

1 个答案:

答案 0 :(得分:3)

这里你真的没有多少选择。您可以再发出一个ajax请求并加载数据。但是,如果在索引页面加载期间数据已经可用,那么我并不理想。在这种情况下,您可以将其注入其他脚本标记并从那里访问它。

<script>
    // Make sure data is JSON encoded.
    window.appConfig = <%= data %>;
</script>
<script src="angular.js"></script>
<script src="app.js"></script>

然后我会在应用程序中设置一个常量服务来存储数据:

angular.module('app').constant('appConfig', {data: window.appConfig});

这样您可以稍后以更多Angular方式使用它,例如:

angular.module('app').controller(function($scope, appConfig) {
    $scope.config = appConfig.data.userId;
});

如果你担心全局变量appConfig的存在,你可以在app run block中删除它,当已经设置了常量时。