複数のことを行うファクトリ オブジェクトのリストを作成することで、コントローラを作成するのと同じ方法でファクトリを作成したいと考えています。EX1 (以下のコードを参照) では、複数のファクトリを定義し、それらをすべて 1 つの「ファクトリ」オブジェクトに格納し、その「ファクトリ」オブジェクトのリストをコントローラに渡したいと考えています。EX2 と同じ方法で、コントローラーを保持する「コントローラー」オブジェクトを定義し、それを demoApp.controllers に渡します。以下に投稿したことを実行しようとすると、次のようになります: エラー: [$injector:unpr] http://errors.angularjs.org/1.3.14/ $injector/unpr?p0=factoriesProvider%20%3C-% 20factories%20%3C-%20SimpleController
理由はわかりません。助けてください!ブラウニーポイントを差し上げます。
これを行う方法があれば、すべての工場を格納する「factories.js」ファイル、別のファイル、すべてのコントローラーを保持する「controllers.js」ファイルなどを作成することで、コードを本当に分離することができます。私のコードを大幅に簡素化します。
例1:
var factories = {};
factories.simpleFactory = function($http){
var customers = [
{name: "John Smith", city: "Phoenix"},
{name: "John Doe", city: "New York"},
{name: "Jane Doe", city: "San Francisco"}
];
var factory = {};
factory.getCustomers = function(){
return customers;
};
return factory;
}
factories.notSimpleFactory= function($http){
var someVariable = [1,2,3,4];
var factory2 = {};
factoryTwo.getSomeVariable() = function(){
return someVariable;
}
return factory2;
}
demoApp.factory(factories);
EX2
var controllers = {};
controllers.SimpleController = function($scope,factories)
{
$scope.customers= {}
$scope.factory2Var = {}
init();
function init(){
$scope.customers = factories.simpleFactories.getCustomers();
}
callNotSimpleFactory()
function callNotSimpleFactory(){
$scope.factory2Var = factories.notSimpleFactory.getSomeVariable();
}
$scope.addCustomer= function(){
$scope.customers.push({name: $scope.newCustomer.name, city: $scope.newCustomer.city});
}};
demoApp.controller(controllers);