Angularjs,在文档加载时执行某些操作

时间:2015-12-30 17:02:43

标签: javascript html angularjs

我正在开发一个角度js应用程序,我需要先通过服务提供商运行一个函数,然后再进行其他操作。该函数是一个get请求,它返回JSON中的两个变量,返回truefalse。 如果变量为true,则加载另一个状态(我正在使用ui路由器)。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

在角度中加载的文档并没有很好的用法,因为它是一个框架,我们需要指望角度加载/准备好。使用angular.module('yourApp').run(),如下所示:

var app = angular.module('yourApp');

app.run(['$rootScope', '$http', function($rootScope, $http){

    $http('http://localhost/status/').then(function(res){
        $rootScope.somethingStatus = res; // assuming that your response is either true of false.
    });

    $rootScope.$watch('somethingStatus', function(nv){
        // here is where you know your request has been done...
        if(nv === true) {
            // ...
        }
        else if(nv === false) {
            // ...
        }

    });
}]);

注意:请注意在任何控制器初始化或查看渲染之前,app.run()中的运行将被触发。所以稍后当你想要访问你所获得的价值时。在需要时将$rootScope注入控制器(或任何地方)。

编辑 :修正一些拼写错误。再次更新答案,归功于@georgeawg和@Pierre Emmanuel Lallemant。谢谢你们的修正

答案 1 :(得分:2)

您应该为执行请求的页面编写控制器(为了向用户显示内容),使用默认的html视图,并在收到响应时,然后更改状态以使用所需的控制器。