我的项目中包含以下preloader.js工厂文件。
angular.module('movieSeat')
.factory('preloader', function( $q, $rootScope ) {
在我的控制器中,我按如下方式注入工厂:
angular.module('movieSeat')
.controller('moviesearchCtrl', ['$scope', 'moviesearchFactory', function ($scope, moviesearchFactory, preloader) {
当我尝试在预加载控制器中使用preloadImages
函数时:
$scope.imageLocations = [
"https://image.tmdb.org/t/p/w300_and_h450_bestv2//nlqFgG7jfBITl8fJHzL72jXwYLt.jpg",
"https://image.tmdb.org/t/p/w300_and_h450_bestv2//ghL4ub6vwbYShlqCFHpoIRwx2sm.jpg",
"https://image.tmdb.org/t/p/w300_and_h450_bestv2//weUSwMdQIa3NaXVzwUoIIcAi85d.jpg",
];
preloader.preloadImages($scope.imageLocations)
我收到以下错误:
无法读取未定义
的属性'preloadImages'
如果我注释掉preloader.preloadImages($scope.imageLocations)
代码,则错误消失了。所以对我而言,在我的控制器中注入预加载器工厂似乎工作正常,但我无法弄清楚为什么我不能在preloadImages
工厂调用函数preload
。
答案 0 :(得分:2)
依赖注入列表中存在拼写错误。您忘记在依赖项字符串列表中添加preloader
。
.controller('moviesearchCtrl', ['$scope', 'moviesearchFactory', 'preloader' /*here*/, function ($scope, moviesearchFactory, preloader) {
答案 1 :(得分:1)
您需要参考您的工厂/服务' preloader'在你的控制器调用中如下:
angular.module('movieSeat')
.controller('moviesearchCtrl', ['$scope', 'moviesearchFactory', 'preloader', function ($scope, moviesearchFactory, preloader) {
})