角度工厂给出错误:[$ injector:undef]

时间:2017-05-15 13:09:02

标签: angularjs factory

工厂看起来很简单,但我不知道这个错误是什么?!?

当我的控制器调用ReportData.add时,我得到了

错误:[$ injector: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());

})

1 个答案:

答案 0 :(得分:2)

你没有在函数结束时返回对象,这就是角度无法注入工厂的原因。

当您为所有已注册的工厂注入工厂角度外观时,然后执行相应的函数(仅一次)并缓存返回的对象,该对象与angular将在控制器内注入的对象相同。

如果你没有在函数内部返回任何内容,则angular无法解析你的依赖关系。

.thisclass > ul:nth-child(4) {
    color: blue
}