2017-05-15 6 views
0

工場はとてもシンプルに見えましたが、このエラーは何ですか?

私のコントローラは、私は

エラー取得ReportData.addを呼び出すとき:[$インジェクター:undefを]あなたは、関数の最後でオブジェクトを返していない

app.factory('ReportData', function() { 

    var factoryData = []; 
    var factoryService = {}; 

    factoryService.add = function(myData) { 
     console.log('FACTORY ADD: ' + myData) 
     factoryData = myData; 
    }; 

    factoryService.get = function() { 
     console.log('FACTORY GET: ' + factoryData) 
     return factoryData; 
    }; 

}); 

app.controller("test", function ($scope, $http, $location, ReportData) { 

    ReportData.add('SENDING DATA TO FACTORY'); 

    console.log('get it: ' + ReportData.get()); 

}) 

答えて

2

を、これはなぜ角度が工場に注入できないのか?

登録されたすべてのファクトリをファクトリの角度の外観に挿入すると、対応するファンクションが1回だけ実行され、角度がコントローラ内に挿入される同じオブジェクトである戻りオブジェクトがキャッシュされます。

関数内に何も返さない場合、angleは依存関係を解決できません。

app.factory('ReportData', function() { 

var factoryData = []; 
var factoryService = {}; 

factoryService.add = function(myData) { 
    console.log('FACTORY ADD: ' + myData) 
    factoryData = myData; 
}; 

factoryService.get = function() { 
    console.log('FACTORY GET: ' + factoryData) 
    return factoryData; 
}; 
return factoryService; //you're missing this return statement 

});

+0

woah !!それは何かをした...今私の工場は無限ループに入った。私はapp.jsにすべてを入れるのは悪い考えだったと思う:-D – torbenrudgaard

+0

Auch ...私はそれを止める方法?私はウェブサーバーを壊してしまったが、それでもこれらのコードは腐っている。[link](https://db.tt/bQ5a36cICW) – torbenrudgaard

+0

あなたのコードには別のエラーがあるはずです。このコードはreturn文でうまく見えます – Karim

関連する問題