Javascript 将变量传递到AngularJS应用程序

Javascript 将变量传递到AngularJS应用程序,javascript,angularjs,Javascript,Angularjs,启动angular应用程序时,我通过脚本(init.js)连接到API。然后,我会收到som信息,比如用户名和用户ID,我想将其定义为全局值,以便在AngularJS应用程序中使用 如何传递变量以在AngularJS应用程序中使用 我现在的想法是在主控制器中定义变量,以便能够在任何地方使用它们 init.js (function () { function appStart() { //Get variables var userId = 123; var usernam

启动angular应用程序时,我通过脚本(init.js)连接到API。然后,我会收到som信息,比如用户名和用户ID,我想将其定义为全局值,以便在AngularJS应用程序中使用

如何传递变量以在AngularJS应用程序中使用

我现在的想法是在主控制器中定义变量,以便能够在任何地方使用它们

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'
]);
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
});
controller.js

(function () { //Start
var app = angular.module('myApp', [
'myControllers',
'myDirectives',
'myFilters',
'myServices',

'ui.router'
]);
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
});

在引导angular之前,您可以使用
angular.module('myApp')。value
angular.module('myApp')。常量。在控制器中,您应该将变量添加到依赖项中。

您可能使用ngRouter或uiRouter,以便在进入第一个路由/状态之前
解析
TT.native.init

最简单的解决方案是:

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;
});

但要知道这不是一个好方法。您应该连接到angular应用程序中的api。在开始编写代码之前,也许您应该先观看和阅读一些教程…

为什么不在angular应用程序中连接api?我该怎么做?我不知道该怎么做。我使用的是基于jQuery的系统,它需要初始化代码是这样的。然后,您可以在angularjs(app.run(…)中的run块中调用它。之后,无论何时需要这些变量,都可以从该服务调用它们。我知道这对初学者来说可能太多了,但这是一种始终如一的“角度化”方式…谢谢!听起来是个好办法。你能举个例子吗?我不是一个有经验的程序员。好吧,我可以添加值。但是,当我引导angular?angular.module('myApp').value('userName',userName)时,我如何将变量设置为.value呢?我已经了解了这一部分,但不知道在运行时如何从init.js获取用户名值:
angular.bootstrap(文档,['myApp'])app.controller('MainController',['$scope','$state','userName',函数($scope,$state,userName){$scope.userName=userId;$scope.userId=userName;}]);是的,使用Ui路由器。我该怎么做?你能把它译成代码吗?谢谢!在什么方面这不是一个好方法?我非常想看看如何在Angular应用程序中实现这一点。在加载第一个状态之前。如果我可以在init.js中执行与现在相同的操作,那当然太棒了!开始挖掘服务(工厂方法)并运行angularjs的方法。如果这是目前的解决方案,请接受这一正确答案……好吧,知道这是一个什么样的坏方法会很有帮助,这样我就可以分析这是否是一个持久的解决方案。