我想創建我的整個角度的應用程序,使用$http
在從以.json文件提取數據使用服務。這是工廠的樣子:AngularJS新的路由器不能實例化控制器
var trooNewsServices = angular.module('trooNewsServices', []);
trooNewsServices.factory('Articles', ['$http',
function($http){
$http.get('resources/articles.json').success(function(data) {
return data;
});
}]);
我將trooNewsServices
依賴項傳入我的模塊聲明中。任何控制器,我嘗試在我的新Articles
服務傳遞,我得到一個
「無法實例化控制器的HomeController」
錯誤在控制檯中。不知道我錯過了什麼/這個代碼有什麼問題。我應該使用$resource
而不是$http
嗎?
這裏是我想過去的「trooNewsServices」到我的主要模塊:
var TrooNews = angular
.module('TrooNews', ['ngMaterial', 'ngNewRouter', 'trooNewsServices'])
.config(function($mdThemingProvider) {
$mdThemingProvider
.theme('default')
.primaryPalette('indigo')
.accentPalette('pink');
})
.config(function($locationProvider) {
$locationProvider.html5Mode({
enabled: false,
requireBase: false
});
});
這裏是我嘗試注入「文章」到我的控制器之一:
TrooNews.controller('HomeController', ['Articles',
function(Articles) {
this.name = 'Troo News';
this.articles = Articles.query();
}]);
而且這裏是我如何在我的'AppController'中設置路由:
TrooNews.controller('AppController', function($router, $mdSidenav, $mdToast, $parse, $http) {
$router.config([{
path: '/',
component: 'home'
}, {
path: '/home',
component: 'home'
}, {
path: '/about',
component: 'about'
}, {
path: '/settings',
component: 'settings'
}, {
path: '/article/:id',
component: 'article'
}]);
this.toggleSidenav = function(menuId) {
$mdSidenav(menuId).toggle();
};
this.navigateTo = function(link) {
var parts = link.match(/^(.+?)(?:\((.*)\))?$/);
var url;
if (parts[2]) {
url = '.' + $router.generate(parts[1], $parse(parts[2])());
} else {
url = '.' + $router.generate(parts[1]);
}
$mdToast.show($mdToast.simple().content('Navigate To: ' + url).position('bottom right'));
$router.navigate(url);
this.toggleSidenav('left');
};
});
你能告訴你如何傳遞服務控制器? – tymeJV
@tymeJV - 更新顯示! –
@FuzzyTree我將.success改爲.then,並得到相同的確切錯誤 –