我正在遵循John Papa的Angular Style指南来创建一个小应用程序,我似乎无法使用controller
中的方法解决问题。 {1}} ...
模块
service
控制器
(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;
});
}
}
})();
当我运行应用程序时,我收到错误 TypeError:无法读取属性' getAccounts'在控制器中未定义,但我无法看到我出错的地方 - 非常感谢任何帮助。
答案 0 :(得分:5)
看起来您忘了将accountsDataSvc注入控制器
尝试:
accountsCtrl.$inject = ['$log', 'accountsDataSvc'];