创建此服务但获取未定义的对象错误。所以对象是空的,但为什么,我觉得我做得对。
var app = angular.module('rollerApp', []);
app.factory('RollerService', function() {
var rollers = [
'roller1',
'roller2',
'roller3'
];
return {
get: function() {
return rollers;
},
};
});
app.controller('Index', ['$scope',function($scope,RollerService) {
$scope.rollers = RollerService.get;
}]);
TypeError:无法读取属性' get'未定义的
整体Javascript的初学者,所以一些解释会很好。
答案 0 :(得分:2)
您还没有注入RollerService
:
app.controller('Index', ['$scope', 'RollerService', function($scope, RollerService) {
$scope.rollers = RollerService.get;
}]);
通过分析函数参数的名称,Angular的依赖注入试图变得聪明。但是,为了防止代码损坏(将参数名称转换为a
,b
等晦涩的名称)引起的问题,您需要通过将依赖关系列为字符串来显式地注释您的函数。定义函数本身。
了解更多:
一旦了解了Angular的依赖注入的工作原理,您就可以使用ng-annotate
之类的工具来避免手动设置$inject
。