0
我见过一些类似这个帖子,但我认为我正确实施了依赖关系,但我似乎仍然得到错误。这是代码。
的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);
}
}
}
})();
任务
/**
* 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';
}
})();
模块及其子文件夹(控制器,指示,服务)的我负荷。请注意,我正在缩小这些文件并在我的应用中加载每个模块,例如:
(function() {
'use strict';
angular
.module('task_list.layout', [
'task_list.layout.controllers'
]);
angular
.module('task_list.layout.controllers', []);
})();
任何帮助都非常感谢。谢谢!
这里是控制台日志:
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
的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', []);
})();
加载顺序:
<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>
出于好奇,这是什么都与Python(或Django的),怎么办? – mgilson
似乎您的任务服务未注册。你可以把一个控制台日志或东西,看看你的服务是实例化还是已经加载?你可以签出最终的捆绑文件来查看它是否包含在内。它引发这个错误,因为indexController找不到任务服务 –
@mgilson它只是我正在处理的项目是在Django中,并且我将角度集成为我的视图,但是对于您而言它并不是。 – hect1c