Я создал фабрику, которая делает HTTP-запрос для api моих одноклассников, и я создал. По какой-то причине мой контроллер, который принимает заявку от формы для параметров нашего запроса, возвращает: angular.js:9101 TypeError: Cannot read property 'crawlWeb' of undefined
Функция вызова на заводе от контроллера
Целью является использование другого контроллера для управления данными в другом месте. Я пробовал смотреть в нескольких местах и нашел похожие примеры, но все же, похоже, имеет ту же ошибку. AngularJS: Cannot call function in factory https://github.com/amitavroy/learningci/blob/06_angularjs_factory_02/js/singlepage/singlepage_module.js
Там, кажется, что-то не так с моей заводской настройки, не позволяя мои контроллеры доступа к своим членам.
Фабрика:
myApp.factory('SharedData', ['$http', '$rootScope', function($http, $rootScope) {
var requestReturn = {};
requestReturn.result = function(p) {
return $http({
headers: {'Content-Type': 'application/x-www.form-urlencoded'},
url: 'http://www.capstone-crawler.appspot.com/crawler',
method: 'GET',
params: p,
})
.then(function(response) {
requestReturn = response;
$rootScope.$broadcast('theReturn', response);
})
}
}]);
Контроллер:
myApp.controller('FetchController', ['$scope', function($scope, SharedData) {
$scope.setParams = function(tosend) {
var toSubmit = {
pages: $scope.tosend.pagesToCrawl,
depth: $scope.tosend.crawlDepth,
start: $scope.tosend.webCrawlURL,
keyword: $scope.tosend.keyWord
}
console.log(toSubmit);
SharedData.crawlWeb(toSubmit);
}
}]);
вам нужно 'return' что-то от фабрики в противном случае используйте' services' – candidJ