カスタム構成を許可するプロバイダーでモジュールを構成しようとしています。これは私のプロバイダーです:
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 の 3 つの関数は単独で正常に動作していますが、追加するMyModuleProvider.setBaseUrl("http://localhost:8080/");
と次のエラーが返されます。
モジュール myApp のインスタンス化に失敗しました: TypeError: MyModuleProvider.setBaseUrl は関数ではありません
なんで?プロバイダー コードに何か問題がありますか?