在app.config中使用resolve

淫荡的

我正在使用config中的angularjs的resolve来加载控制器之前需要的一些值。这是我用来测试逻辑的代码

(function () {

    "use strict";

    var app = angular.module("lab1App", ["ngRoute"]);

    app.config(["$routeProvider", function ($routeProvider) {
        $routeProvider.when("/", {
            templateUrl: "/views/view1.html"
        }).when("/view2", {
            templateUrl: "views/view2.html",
            controller: "SecondController",
            resolve: {
                name: ["DropdownService", function (dropDownSvc) {
                    return dropDownSvc.loadName(5);
                }]
            }
        }).otherwise({
            template: "Don't have any routes associated with this"
        });
    }]);

    app.controller("MainController", [ "$scope", function ($scope) {

    }]);

    app.controller("SecondController", [ "$scope", "name", function ($scope, name) {
        console.log(name);
    }]);

    app.constant("API", { url: "http://localhost:55339/api/dropDowns" });

    app.factory("DropdownService", ["API", "$http", "$q", function (api, $http, $q) {

        return {
            loadName: function (id) {
                console.log("im here");
                var deferred = $q.defer();

                $http.get(api.url + "/" + id)
                    .success(function (result) {
                        deferred.resolve(result);
                    }).error(function (err, status) {
                        deferred.reject("Error: " + err + ", Status: " + status);
                    });

                return deferred.promise;
            }
        };
    }]);

})();

现在,当我运行代码时,出现此错误:

错误:[$ injector:unpr]未知提供程序:nameProvider <-名称<-SecondController

虽然我在控制器中得到了name变量,但抛出了错误。

有人可以告诉我我做错了什么吗?

新开发者

我要冒险猜测某个地方(可能在内部view2.html

ng-controller="SecondController"

"SecondController"控制器的第二次调用是引发“未知提供程序”错误的原因,因为它没有resolve-d name

要修复,请删除该ng-controller指令。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章