Новое в AngularJs Я пытаюсь обучить, создав одностраничное приложение Todo. Проблема в том, что у меня возникли проблемы с загрузкой фабрики localStorage, которую я пытаюсь использовать для этого. На данный момент я застрял на следующей ошибки:Undefined не является функцией и зависимой инъекцией
Undefined is not a function at routeconfig.resolve.store on app.js line 11.
Вот код:
app.js
angular.module('TodoAngular', ['ngRoute'])
.config(function($routeProvider) {
'use strict';
var routeConfig = {
controller: 'TodoController' ,
templareUrl: 'app/partials/TodoList.html',
resolve: {
store: function (todoAngularStorage) {
// Récupère le module qui gère le localStorage
return todoAngularStorage.then(function (module) {
module.get(); // Récupère les données
return module;
});
}
}
};
$routeProvider
.when('/todos', routeConfig)
.otherwise({
redirectTo: '/todos'
});
}
);
todoAngularStorage.js
angular.module('TodoAngular')
.factory('todoAngularStorage', function ($http,$injector) {
'use strict';
return $injector.get('localStorage');
})
.factory('localStorage', function($q) {
'use strict';
var STORAGE_ID = 'todoAngularLocalStorage';
var store = {
todos: [],
//récupérer depuis le local storage
_getFromLocalStorage: function(){
return JSON.parse(localStorage.getItem(STORAGE_ID) || '[]');
},
//enregistrer dans le local storage
_saveToLocalStorage: function (todos) {
localstorage.setItem(STORAGE_ID, JSON.stringify(todos));
},
//supprimer un Todo
delete: function (todo) {
//instanciation de l'API Deferred
var deferred = $q.defer();
store.todos.splice(store.todos.indexOf(todo), 1);
store._saveToLocalStorage(store.todos);
deferred.resolve(store.todos);
return deferred.promise;
},
//récupérer les todos
get: function() {
//instanciation de l'API Deferred
var deferred = $q.defer();
angular.copy(store._getFromLocalStorage(), store.todos);
deferred.resolve(store.todos);
return deferred.promise;
},
//ajouter un todo à la fin de la todo list
insert: function (todo) {
//instanciation de l'API Deferred
var deferred = $q.defer();
store.todos.push(todo);
store._saveToLocalStorage(store.todos);
deferred.resolve(store.todos);
return deferred.promise;
}
};
return store;
});
Я пытается отладить его, и кажется, что проблема исходит из «модуля», переданного в функции в следующей строке моегофайла
return todoAngularStorage.then(function (module) {
Я следовал этому примеру (https://github.com/tastejs/todomvc/tree/master/examples/angularjs) при строительстве моего приложения, и я действительно не вижу, где моя ошибка в данный момент.
Ty для ответа, я пытаюсь решить его с вашего совета. Я вернусь к вам, если это поможет. – Bcarmard
Я просмотрел ваш код и обновил свой ответ (я изменил часть «что я думаю, вы хотите сделать»). – hon2a
Хорошо, спасибо, вы были правы, проблема решена. – Bcarmard