Я следую руководству Angular Style от John Papa для создания небольшого приложения, и я не могу решить проблему с помощью controller
, используя метод от service
.. .ТипError: Не удается прочитать свойство getAccounts of undefined
модуль
(function() {
'use strict';
var accountsApp = angular.module('accountsApp', ['ui.bootstrap', 'ngAnimate']);
})();
контроллер
(function() {
'use strict';
angular
.module('accountsApp')
.controller('accountsCtrl', accountsCtrl);
accountsCtrl.$inject = ['$log'];
function accountsCtrl($log, accountsDataSvc) {
/* jshint validthis:true */
var vm = this;
vm.title = 'Accounts';
vm.accounts = [];
vm.accountForm = null;
vm.account = { id: 0, name: '', description: '' }
activate();
function activate() {
return getAccounts(1).then(function() {
$log.info('Accounts loaded');
});
}
function getAccounts(id) {
return accountsDataSvc.getAccounts(id).then(function(data) { //error here
vm.accounts = data;
return vm.accounts;
});
}
}
})();
служба
(function() {
'use strict';
angular
.module('accountsApp')
.factory('accountsDataSvc', accountsDataSvc);
accountsDataSvc.$inject = ['$http', '$log'];
function accountsDataSvc($http, $log, $q) {
var uri = '***';
var service = {
getAccounts: accounts
};
return service;
//////////////////////
function accounts(userId) {
$log.info(uri + userId + ' called');
return $http.get(uri + userId)
.then(getAccountsComplete)
.catch(function (message) {
$log.error('XHR Failed for getAccounts ' + message);
});
function getAccountsComplete(data, status, headers, config) {
return data.data[0].data.results;
}
}
}
})();
При запуске приложения, я получаю ошибку TypeError: Не удается прочитать свойство «getAccounts» неопределенного внутри контроллера, но я не могу видеть, куда я пошел неправильно - любая помощь будет высоко оценена.
Мэтт, спасибо за это - я думал, что только нужно, чтобы ввести угловую конкретные зависимости здесь, Угловое Newb ошибка - Я соглашусь, когда SO позволит мне. – christiandev
Я тоже новичок. Всякий раз, когда появляется такая ошибка, я проверяю две вещи: 1) Injection Dependency, я сообщил своему контроллеру обо всех сервисах, от которых это зависит; 2) Мой файл index.html, я ссылаюсь на все необходимые .js-файлы. – MattDionis
Да, я буду следовать тем же двум шагам :) - приветствия. – christiandev