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:
Ho controllato le versioni
angular"js
file eangular-animate.js
e sono uguali 1.5.8.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 № 1ngAnimate
è 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);