Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular-Fire$http.get加载页面_Javascript_Angularjs - Fatal编程技术网

Javascript Angular-Fire$http.get加载页面

Javascript Angular-Fire$http.get加载页面,javascript,angularjs,Javascript,Angularjs,我的主页正在加载,然后在页面已加载后触发$http.get请求 我如何在页面加载之前获得首先触发的请求,以便使用页面上返回的数据 路由: var leisureApp = angular.module('leisureApp', ["ngRoute"]); leisureApp.config(["$routeProvider", "$locationProvider", function ($routeProvider, $locationProvider) { $ro

我的主页正在加载,然后在页面已加载后触发$http.get请求

我如何在页面加载之前获得首先触发的请求,以便使用页面上返回的数据

路由:

var leisureApp = angular.module('leisureApp', ["ngRoute"]);

leisureApp.config(["$routeProvider", "$locationProvider",
    function ($routeProvider, $locationProvider) {
        $routeProvider

            .when("/home", {
                templateUrl: "Scripts/HTML/Home.html",
                controller: "HomeController"
            })
            .when("/login", {
                templateUrl: "Scripts/HTML/Login.html",
                controller: "LoginController"
            })
            .when("/time", {
                templateUrl: "Scripts/HTML/Time.html"
            })
            .otherwise({
                redirectTo: "/home"
            });
        $locationProvider.html5Mode({
            enabled: true,
            requireBase: false
        });
    }]);
家庭控制器:

angular.module('leisureApp')

    .controller('HomeController', ['$scope', 'ADAuth', function ($scope, ADAuth) {

        $scope.ADAuth = ADAuth;

    }])


    .factory('ADAuth', function ($http) {
        return $http.get('Home/GetUser');
    })
MVC控制器方法:

public JsonResult GetUser()
{
    var user = new LeisureUser();
    user.ActiveDirectoryName = HttpContext.User.Identity.Name;
    return new JsonResult { Data = user, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
干杯。

您要找的。它允许您使路由依赖于函数值或承诺,然后将其注入控制器,并在控制器实例化时可用

$routeProvider
    .when("/news", {
        templateUrl: "newsView.html",
        controller: "newsController",
        resolve: {
            message: function(messageService){
                return messageService.getMessage();
            }
        }
    });

app.controller("newsController", function (message) {
    $scope.message = message;
});
请注意,解析对象消息的属性名称与注入控制器的值匹配。如果您对最小安全代码使用数组语法,它将是这样的:

app.controller("newsController", ['message', function (message) {
    $scope.message = message;
}]);
你在找我。它允许您使路由依赖于函数值或承诺,然后将其注入控制器,并在控制器实例化时可用

$routeProvider
    .when("/news", {
        templateUrl: "newsView.html",
        controller: "newsController",
        resolve: {
            message: function(messageService){
                return messageService.getMessage();
            }
        }
    });

app.controller("newsController", function (message) {
    $scope.message = message;
});
请注意,解析对象消息的属性名称与注入控制器的值匹配。如果您对最小安全代码使用数组语法,它将是这样的:

app.controller("newsController", ['message', function (message) {
    $scope.message = message;
}]);

尝试使用$http.get'Home/GetUser';在控制器本身中,您可以使用resolve:来解析承诺,而不是为@JesseCarter提到的ITA创建工厂。但是,这可能不是必需的,在您的情况下,您的问题是您从来没有调用过您的服务,只是分配了它,所以$http实际上根本就没有被调用过。另外,$http返回一个承诺,您需要使用。然后才能访问数据;在控制器本身中,您可以使用resolve:来解析承诺,而不是为@JesseCarter提到的ITA创建工厂。但是,这可能不是必需的,在您的情况下,您的问题是您从来没有调用过您的服务,只是分配了它,所以$http实际上根本就没有被调用过。另外,$http返回一个承诺,您需要使用.然后才能访问数据。