Я хотел бы помочь в выяснении, почему эта служба, которую я создал, возвращается неопределенно, когда я печатаю ее на консоли.Почему эта фабрика возвращается не определена?
module.js
'use strict';
var Search = angular.module('SearchApp',["ngCookies","ngRoute"]);
Search.run(function ($http, $cookies) {
$http.defaults.headers.common['X-CSRFToken'] = $cookies['csrftoken'];
});
Search.config(function($routeProvider){
$routeProvider
.when('/', {
controller:'searchCtrl',
resolve: {
dota_items: function (InventoryService){
return InventoryService.get('dota');
}
}
})
.otherwise({
redirectTo: '/'
})
});
Это модуль, файл, в котором я объявлен маршрут.
servcie.js
Search.factory('InventoryService', function ($http, $q) {
var api_url = "/api/inventory/";
return {
get: function (inventory) {
var inv_url = api_url + inventory + '/';
var defer = $q.defer();
$http({method: 'GET', url: inv_url}).
success(function (data, status, headers, config){
defer.resolve(data);
})
.error(function (data,status, headers, config){
defer.reject(status);
});
return defer.promise;
}
}
});
Насколько я могу сказать, что синтаксис является правильным для моей службы, однако я, возможно, что-то пропустил.
controller.js
Search.controller('searchCtrl',['$scope', function($scope, dota_items){
console.log(dota_items);
$scope.selected = 'have';
$scope.setSection = function(section){
$scope.selected = section;
};
$scope.isSelected = function(section){
return $scope.selected == section;
};
}]);
Вот вопрос, в консоли, переменная всегда не определено. Я попытался проверить, действительно ли моя служба вызывается путем печати на консоль, однако ничего не регистрируется. Я не уверен, в чем проблема.
Благодаря
Привет, я пробовал оба решения, размещенные выше, и теперь я получаю эту ошибку. http://errors.angularjs.org/1.2.0/$injector/unpr?p0=dota_itemsProvider%20%3C-%20dota_items. Это была начальная ошибка, которую я получал, прежде чем я сделал изменение, которое я сделал, чтобы получить неопределенный результат. Я не уверен, в чем проблема, насколько я могу сказать, в том, что мне нужно. – Deep
Я не знаю ни того, ни другого, если у вас в вашей разметке нет директивы 'ng-controller', которая прямо ссылается на' 'searchCtrl'' (потому что, когда у меня была эта проблема, это была моя ошибка) ... если не так, думаю, просто обновите свой вопрос, и я удалю этот ответ. – Dan
hmmm, только что проверил мой html-файл, и я только один раз обращался к ng-контроллеру, а также к приложению. У меня уже был вопрос, связанный с этой проблемой, поэтому я не изменю это, так как это, вероятно, будет полезно для кого-то нового, подобного мне самому. Спасибо – Deep