Ich habe ein paar ähnliche Posts gesehen, aber ich denke, dass ich die Abhängigkeiten korrekt implementiert habe, aber ich bekomme immer noch den Fehler . Hier ist der Code.
Indexcontroller:
/**
* IndexController
* @namespace task_list.layout.controllers
*/
(function() {
'use strict';
angular
.module('task_list.layout.controllers')
.controller('IndexController', IndexController);
IndexController.$inject = ['$scope', 'Auth', 'Tasks', 'Snackbar'];
/**
* @namespace IndexController
*/
function IndexController($scope, Auth, Tasks, Snackbar) {
var vm = this;
vm.isAuthenticated = Auth.isAuthenticated();
vm.tasks = [];
activate();
/**
* @name activate
* @desc Actions to be performed when this controller is instantiated
* @memberOf task_list.layout.controllers.IndexController
*/
function activate() {
Tasks.all().then(tasksSuccessFn, tasksErrorFn);
$scope.$on('task.created', function (event, task) {
vm.tasks.unshift(task);
});
$scope.$on('task.created.error', function() {
vm.tasks.shift();
});
/**
* @name tasksSuccessFn
* @desc Update tasks array on view
*/
function tasksSuccessFn(data, status, headers, config) {
vm.tasks = data.data;
}
/**
* @name tasksErrorFn
* @desc Show snackbar with error
*/
function tasksErrorFn(data, status, headers, config) {
Snackbar.error(data.error);
}
}
}
})();
Aufgaben
/**
* Tasks
* @namespace task_list.tasks.services
*/
(function() {
'use strict';
angular
.module('task_list.tasks.services')
.factory('Tasks', Tasks);
Tasks.$inject = ['$http'];
/**
* @namespace Tasks
* @returns {Factory}
*/
function Tasks($http) {
var Tasks = {
all: all,
create: create,
// edit: edit,
// delete: delete,
get: get
};
return Tasks;
////////////////////
/**
* @name all
* @desc Get all Tasks
* @returns {Promise}
* @memberOf task_list.tasks.services.Tasks
*/
function all() {
return $http.get('/api/v1/tasks/');
}
/**
* @name create
* @desc Create a new Task
* @param {string} name The name of the new Task
* @returns {Promise}
* @memberOf task_list.tasks.services.Tasks
*/
function create(name) {
return $http.post('/api/v1/tasks/', {
name: name
});
}
/**
* @name get
* @desc Get the Tasks of a given user
* @param {string} username The username to get Tasks for
* @returns {Promise}
* @memberOf task_list.tasks.services.Tasks
*/
function get(username) {
return $http.get('/api/v1/accounts/' + username + '/tasks/');
}
}
})();
Task_list.js
(function() {
'use strict';
angular
.module('task_list', [
'task_list.routes',
'task_list.auth',
'task_list.layout',
'task_list.tasks',
'task_list.config',
'task_list.utils',
]);
angular
.module('task_list.routes', ['ngRoute']);
angular
.module('task_list.config', []);
angular
.module('task_list')
.run(run);
run.$inject = ['$http'];
/**
* @name run
* @desc Update xsrf $http headers to align with Django's defaults
*/
function run($http) {
$http.defaults.xsrfHeaderName = 'X-CSRFToken';
$http.defaults.xsrfCookieName = 'csrftoken';
}
})();
I Last der Module und deren Unterordner (Steuerungen, Richtlinien, Dienstleistungen). Beachten Sie, dass ich die Dateien minimieren und jedes Modul in meiner App als solches laden werde:
Jede Hilfe wird sehr geschätzt. Vielen Dank! Hier
ist das Konsolenprotokoll:
c98216751c41.js:2140 Error: [$injector:unpr] Unknown provider: TasksProvider <- Tasks <- IndexController
http://errors.angularjs.org/1.5.7/$injector/unpr?p0=TasksProvider%20%3C-%20Tasks%20%3C-%20IndexController
at http://127.0.0.1:9090/static/CACHE/js/c98216751c41.js:1507:8
at http://127.0.0.1:9090/static/CACHE/js/c98216751c41.js:1721:7
at Object.getService [as get] (http://127.0.0.1:9090/static/CACHE/js/c98216751c41.js:1737:122)
at http://127.0.0.1:9090/static/CACHE/js/c98216751c41.js:1721:212
at getService (http://127.0.0.1:9090/static/CACHE/js/c98216751c41.js:1737:122)
at injectionArgs (http://127.0.0.1:9090/static/CACHE/js/c98216751c41.js:1740:58)
at Object.instantiate (http://127.0.0.1:9090/static/CACHE/js/c98216751c41.js:1747:106)
at $controller (http://127.0.0.1:9090/static/CACHE/js/c98216751c41.js:2000:20)
at Object.link (http://127.0.0.1:9090/static/CACHE/js/c98216751c41.js:2681:377)
at http://127.0.0.1:9090/static/CACHE/js/c98216751c41.js:1576:296 <div class="col-xs-12 ng-view ng-scope">
tasks.module.js
(function() {
'use strict';
angular
.module('task_list.tasks', [
'task_list.tasks.controllers',
'task_list.tasks.directives',
'task_list.tasks.services',
]);
angular
.module('task_list.tasks.controllers', []);
angular
.module('task_list.tasks.directives', ['ngDialog']);
angular
.module('task_list.tasks.services', []);
})();
Ladereihenfolge von js Dateien:
<script type="text/javascript" src="{% static 'javascripts/task_list.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/task_list.config.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/task_list.routes.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/auth/auth.module.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/auth/services/auth.service.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/auth/controllers/register.controller.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/tasks/tasks.module.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/auth/controllers/login.controller.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/layout/layout.module.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/layout/controllers/navbar.controller.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/tasks/directives/tasks.directive.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/tasks/controllers/tasks.controller.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/utils/utils.module.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/utils/services/snackbar.service.js' %}"></script>
<script type="text/javascript" src="{% static 'javascripts/layout/controllers/index.controller.js' %}"></script>
Aus Neugier, was das mit Python zu tun haben (oder django)? – mgilson
Ihr Aufgaben-Service scheint nicht registriert zu sein. Können Sie ein Konsolenprotokoll oder etwas anzeigen, um zu sehen, ob Ihr Dienst instanziiert ist oder ob er geladen wurde? Sie können die endgültige Paketdatei prüfen, um festzustellen, ob sie enthalten ist. Es wirft diesen Fehler, weil der indexController den Aufgaben-Service nicht finden kann –
@mgilson Es ist nur, dass das Projekt, an dem ich arbeite, in Django ist und ich eckig als meine Ansicht integriert habe, aber zu Ihrem Punkt tut es nicht. – hect1c