当前位置: 首页 > 面试题库 >

AngularJS接收数据后手动引导

洪永长
2023-03-14
问题内容

我正在尝试从服务器接收数据后手动引导AngularJS。

bootstrap.js:

var initInjector = angular.injector(['ng']);
var $http = initInjector.get('$http');
var maindata;

function bootstrapAngular() {
    angular.element(document).ready(function() {
        angular.bootstrap(document, ['app']);
    });
}

function getMainData() {
    return maindata;
}

$http
    .get('/data')
    .then(function (response) {
        maindata = response.data;
        bootstrapAngular();
    }, function (error) {
        console.log(error);
    });

启动后,我需要在应用程序中使用maindatagetMaindata()。因此,我无法(function(){})();bootstrap.js文件上放更紧密的javascript
来保持所有内容的私密性,从而使该功能和变量可供应用程序的其他部分访问。

是否可以将所有内容设为私有,但仍然可以让应用的其他部分访问?


问题答案:

您可以将其maindata作为可注射剂公开以使其在您的应用中可用:

$http
    .get('/data')
    .then(function (response) {
        maindata = response.data;

        angular.module("app").value("MainData", maindata);

        bootstrapAngular();
    }, function (error) {
        console.log(error);
    });

然后可以将其注入控制器或服务中:

.controller("MainCtrl", function($scope, MainData){
   $scope.data = MainData;
});


 类似资料:
  • 我的应用程序的MainActivity从用户那里获取一些数据来计算他/她的BMI和BMR,并将这些数据用于应用程序的主要部分,即另一个名为DailyActivity的活动。我希望这样,用户第一次启动应用程序时,它会要求提供数据。但在第一次之后,每次用户启动应用程序时,都应使用之前输入的数据直接启动DailyActivity。(按下后退按钮也不应显示MainActivity)。我如何实现这一点?

  • 问题内容: 我正在使用Cordova 3.3.1-0.4.2和Angular 1.2.13 收到Cordova“ deviceready”事件后,我需要手动引导Angular。 我正在Nexus 5上进行测试,但在iPhone上却具有完全相同的行为。 为了简化问题,这是JS在全局文档范围内运行。脚本在结束标记之前加载。 这有效: 这不起作用: 但是,如果我添加到显示它正在运行的init方法中。同时

  • 在Laravel 5.1方法是不接收后数据。 这是我的方法,$request不存储通过post发送的数据。 这是我在测试中对它的称呼: 这就是我的评论- 这是我的路线: 我的方法从URL接收$project ectId,这是工作,但请求是空的,没有我发送的数据从$注释-

  • 试图将$http.post请求从AngularJS表单发送到Symfony控制器以将表单内容添加到数据库。我可以在AngularJS侧获得"状态"200的成功响应。 但是,在Symfony控制器上,$request- 另外,安装了FOSRestBundle并启用了body listener、param fetcher listener。 我知道我的问题与AngularJS对Symfony控制器的P

  • 因此,我正在用Java编写一个程序,在DatagramSocket和DataGramPacket的帮助下发送和接收数据。问题是,当我发送数据/接收数据时,数据在我发送的程序中也会有所不同,但只是在某些情况下,比如: 但有时会起作用,比如:

  • 问题内容: 我已经看到以下内容: AngularJS文档也提到了这一点,我不太了解。 这些方法之间有什么区别吗?特别是Angular文档的最后一种方法是做什么的?一个比另一个更好用吗? 问题答案: 它们大致相同,但有一些区别: 如果您 在页面末尾 (而不是在标题中)加载 了 脚本,这将起作用。 否则,在引导应用程序时将不会加载DOM(不会编译任何模板,指令不会有任何效果)。 此作品:plnkr 这