В настоящее время я пытаюсь использовать службу $ http, чтобы попробовать и прочитать некоторые файлы JSON. Я успешно их читаю, но почему-то появляются как object Object
по какой-то причине, поэтому я не могу прочитать свойства объектов.
Я читаю файл неправильно, когда я использую запрос GET
? Но это странно, потому что, когда я использую данные JSON.stringify()
, я могу видеть все свойства, которые должны быть там ... это просто, когда я получаю это нормально, они появляются как эти неопределенные объекты. Возможно ли, что я инициализирую переменные?
Вот моя функция, чтобы получить данные из файла JSON:
myMod.service('deployService', function ($http, envService) {
var projectCache = [];
var envCache = [];
var envFilter = "";
function getDeployments() {
if (!projectCache) {
// return;
} else {
$http({
method: 'GET',
url: '/json_files/dashboard.json'
}).then(
function success(response) {
this.projectCache = response.data;
this.envFilter = envService.envFilter;
for (var i = 0; i < response.data.length; i++) {
// var item = JSON.stringify(response.data[i].environmentStatuses);
var item = response.data[i].environmentStatuses;
console.log("THE ITEM IS: " + item);
// this.envCache.push(item);
envCache.push(item);
}
console.log(envCache);
},
function failure(reason) {
console.log("there was a failure in getProject in deployController")
});
}
};
return {
projectCache: projectCache,
envCache: envCache,
getDeployments: getDeployments,
envFilter: envFilter,
clearCaches: clearCaches
};
});
Вот код для контроллера:
myMod.controller("deployController", ['$scope', '$http', '$location', 'envService', 'deployService', function ($scope, $http, $location, envService, deployService) {
//store the projects in this array
$scope.projects = [];
$scope.editingData = {};
$scope.selectedRow = []; // initialize our variable to null
$scope.setClickedRow = function (index) { //function that sets the value of selectedRow to current index
$scope.selectedRow[i] = $scope.selectedRow[i] != true;
console.log(index);
console.log("row " + $scope.selectedRow[i]);
};
//being used to fetch the name and to get the index
$scope.getProjName = function (index) {
// $scope.envFilter = {
// name: ""
// };
console.log("INSIDE GETPROJNAEM");
envService.clickedEnv(index, $scope.projects);
//console.log($scope.envFilter);
};
$http({
method: 'GET',
url: './json_files/dashboard.json'
}).then(function successCallback(response) {
$scope.projects = response.data;
}, function errorCallback() {
alert("cant find the dashboard json");
});
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ENVIRONMENT CONTROLLER LOGIC~~~~~~~~~~~~~~~~~~~~~~~~~~~
$scope.projEnvironments = [];
$scope.editingData = {};
deployService.getDeployments();
$scope.projEnvironments = deployService.envCache;
$scope.envFilter = deployService.envFilter;
console.log("DEPLOYSERVICE.ENVCACHE: " + deployService.envCache);
// console.log("projenv: " + $scope.projEnvironments);
// console.log("envFilter: " + $scope.envFilter);
$scope.getBranchName = function (environment) {
envService.setBranchName(environment);
console.log("THE ENVBRANCH:" + $scope.envBranch);
};
}]);
Вам необходимо позвонить в Службу с помощью вашего углового контроллера. Затем вы сможете прочитать содержимое, например deployService.GetDeployments() –
@RaniRadcliff yes. Я вызываю 'deployService.GetDeployments()' в моем контроллере, но он все еще возвращает объект объекта. Обычно, когда объект возвращается, есть раскрывающееся меню в инструментах разработчика Chrome, но у этих объектов нет ни – winsticknova
@winsticknova Не могли бы вы обновить сообщение своим кодом контроллера? –