/ / Come inserire correttamente una dipendenza nel modulo Angular in Web API? - javascript, jquery, angularjs, asp.net-mvc

Come inserire correttamente una dipendenza nel modulo Angular in Web API? - javascript, jquery, angularjs, asp.net-mvc

Ho un objectFactory.js file:

(function () {
var objectiveFactory = function ($http, $ngAnimate) {
debugger;
return {
getObjectives: function () {
return $http.get("/api/Objective/");
}
};

};
debugger;
try {
//objectiveFactory.$inject = ["$http", "$ngAnimate"];// not working
objectiveFactory.$inject = ["$http"];// perfectly works!
angular.module("app", []).factory("objectiveFactory", objectiveFactory);
}
catch (e)
{
var e1 = e;
}

}());

È davvero strano, tuttavia se aggiungo una nuova dipendenza ngAnimate:

objectiveFactory.$inject = ["$http", "$ngAnimate"];// not working

Quindi ho un errore:

angular.js: 13920 Errore: [$ injector: unpr] Provider sconosciuto: ngAnimateProvider <- ngAnimate <- objectiveFactory http://errors.angularjs.org/1.5.8/$ Iniettore / UNPR?p0 = ngAnimateProvider% 20% 3c-% 20ngAnimate% 20% 3c-% 20objectiveFactory at angular.js: 68 at angular.js: 4511 su Object.getService [as get] (angular.js: 4664) at angular.js: 4516 su getService (angular.js: 4664) at injectionArgs (angular.js: 4688) su Object.invoke (angular.js: 4710) su Object.enforcedReturnValue [come $ get] (angular.js: 4557) su Object.invoke (angular.js: 4718) at angular.js: 4517

Ma "$http"injecion funziona perfettamente.

Ho esplorato molte informazioni e ricontrollato i seguenti consigli nella mia applicazione API Web:

  1. Ho controllato le versioni angular"js file e angular-animate.js e sono uguali 1.5.8.

  2. Ho escluso la minificazione e il raggruppamento, quindi i file vengono caricati come il seguente frammento di codice:

    <script src="@Url.Content("~/Scripts/jquery-1.10.2.js")"></script>
    <script src="@Url.Content("~/Scripts/bootstrap.js")"></script>
    <script src="@Url.Content("~/Scripts/angular.js")"></script>
    <script src="@Url.Content("~/Scripts/angular-route.js")"></script>
    <script src="@Url.Content("~/Scripts/angular-animate.js")"></script>
    <script src="@Url.Content("~/Scripts/objectiveFactory.js")"></script>
    <script src="@Url.Content("~/Scripts/objective.js")"></script>
    

Tuttavia, l'errore è lo stesso:

angular.js: 13920 Errore: [$ injector: unpr] Provider sconosciuto:

Qualcuno sa cosa ho fatto di sbagliato?"$http"injecion funziona perfettamente)

risposte:

1 per risposta № 1

ngAnimate è il nome del modulo e dovresti inserire ngAnimate nel tuo modulo principale. angular.module("app", []) ecco il tuo modulo principale:

angular.module("app", [$ngAnimate"]).factory("objectiveFactory", objectiveFactory);