启动我的角应用时,我通过脚本(init.js)连接到API。然后,我接收som信息,例如用户名和用户ID,我想将其定义为在AngularJS App中使用的全局值。
如何传递变量以在AngularJS应用程序中使用?
我现在的想法是在MainController中定义变量,以便能够在任何地方使用它们。
init.js
(function () {
function appStart() {
//Get variables
var userId = 123;
var username = 'This is my name';
//Init Angular App
angular.bootstrap(document, ['myApp']); //How do I use the variables in the angular app?
}
function genericError() {
console.error('Something went wrong');
}
TT.native.init()
.done(appStart)
.fail(genericError);
})();
app.js
(function () { //Start
var app = angular.module('myApp', [
'myControllers',
'myDirectives',
'myFilters',
'myServices',
'ui.router'
]);
controller.js
var app = angular.module('myControllers', []);
app.controller('MainController', function ($scope, $state) {
$scope.userName = ""; //I want to use the variable from INIT.JS here
$scope.userId = 0; //I want to use the variable from INIT.JS here
});
答案 0 :(得分:1)
最简单的解决方案是:
var userId = -1;
var username = '';
(function () {
function appStart() {
//Get variables
userId = 123;
username = 'This is my name';
//Init Angular App
angular.bootstrap(document, ['myApp']); //How do I use the variables in the angular app?
}
function genericError() {
console.error('Something went wrong');
}
TT.native.init()
.done(appStart)
.fail(genericError);
})();
然后在控制器中:
app.controller('MainController', function ($scope, $state) {
$scope.userName = userId;
$scope.userId = username;
});
但要知道这不是一个好方法。您应该在角度应用程序中连接到您的api。也许你应该在开始编码之前观看和阅读一些教程...
答案 1 :(得分:0)
您可以在引导角度之前使用angular.module('myApp').value
或angular.module('myApp').constant
。在控制器中,您应该将变量添加到依赖项中。
答案 2 :(得分:0)
您可能使用ngRouter或uiRouter,因此在进入第一个路线/州之前,您可以resolve
TT.native.init
。