我是angulerJS的新手。我已经定义了一个工厂来从API获取数据但是当我尝试将工厂放在控制器中时我得到了错误。
这是工厂代码。
(Function () {
var CategoriesFactory = function($http) {
var factory = {};
factory.getCategorys = function(account_id){
return $http.get('http://localhost:18678/api/Transaction?account_id=2');
};
factory.getTransaction = function(acc_id){
return $http.get('http://localhost:18678/api/Transaction?acc_id=2');
};
factory.getTransactionInCategory = function(category_id, from_date, to_date){
return.$http.get('http://localhost:18678/api/transaction?category='+category_id+'&account=2&from=2015-01- 01&to=2015-12-30');
};
return factory;
};
angular.module('AccApp').factory('CategoriesFactory', CategoriesFactory);
}());
这是控制器。
app.controller('CategoriesController',
function ($scope, $routeParams, $http, CategoriesFactory) {
})
这是错误。 未知提供者:CategoriesFactoryProvider< - CategoriesFactory
答案 0 :(得分:0)
我猜你一定忘记将AccApp注入你定义应用程序的mai模块。
angular.module("app", ['AccApp']);
请做这样的事情。
希望这有帮助!
答案 1 :(得分:0)
为什么要尝试以奇怪的方式编写角度代码? 角度的目标是简单性
var app = angular.module('AccApp',[]);
app.factory('CategoriesFactory',function($http){// you can cut and paste this factory into a seperate file if you wish
return{
getCategorys:function(account_id){
return $http.get('http://localhost:18678/api/Transaction?account_id=2');
},
getTransaction:function(acc_id){
return $http.get('http://localhost:18678/api/Transaction?acc_id=2');
},
getTransactionInCategory : function(category_id, from_date, to_date){
return.$http.get('http://localhost:18678/api/transaction?category='+category_id+'&account=2&from=2015-01- 01&to=2015-12-30');
};
}
});
现在您只需将此工厂注入控制器:
app.controller('CategoriesController',function ($scope, $routeParams, $http, CategoriesFactory){
console.log(CategoriesFactory.getCategorys(getCategorys));
});