Angularjs Provider:不是一个函数

时间:2016-02-16 14:56:35

标签: angularjs angular-providers

我正在尝试使用应该允许自定义配置的Provider配置我的模块。这是我的提供者:

var module = angular.module('myModule', []);

module.provider('MyModule', function () {


    this.setBaseUrl = function (f) {
        this.BaseUrl = f;
    };

    this.setOnForbidden = function (f) {
        this.onForbidden = f;
    };

    this.setOnTokenExpired = function (f) {
        this.onTokenExpired = f;
    };

    this.setOnUnauthenticated = function (f) {
        this.onUnauthenticated = f;
    };

    this.$get = function () {
        return this;
    };

})

这是我使用提供商的应用程序:

angular.module('myApp', ['myModule'])

    .config(function (MyModuleProvider) {
        MyModuleProvider.setBaseUrl("http://localhost:8080/");

        MyModuleProvider.setOnForbidden(
            function () {
                console.log("Forbidden - User Function");
            }
        );
        MyModuleProvider.setOnTokenExpired(
            function () {
                console.log("Token Expired - User Function");
            }
        );
        MyModuleProvider.setOnUnauthenticated(
            function () {
                console.log("User Unauthenticated, wrong username or password - User Function");
            }
        );

    })

setOnForbidden,setOnTokenExpired和setOnUnauthenticated三个函数单独工作正常,但是当我添加MyModuleProvider.setBaseUrl("http://localhost:8080/");时,它返回以下错误:

由于以下原因导致无法实例化myApp模块: TypeError:MyModuleProvider.setBaseUrl不是函数

为什么呢?提供者代码中有什么问题吗?

0 个答案:

没有答案