将变量传递到AngularJS App

时间:2014-10-22 09:30:45

标签: javascript angularjs

启动我的角应用时,我通过脚本(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
});

3 个答案:

答案 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').valueangular.module('myApp').constant。在控制器中,您应该将变量添加到依赖项中。

答案 2 :(得分:0)

您可能使用ngRouter或uiRouter,因此在进入第一个路线/州之前,您可以resolve TT.native.init