как получить файл JSON, расположенный локально в angularjs

0

Привет, я использую angularjs и хочу получить данные из локально построенного json файла. Я пытался использовать $ http, но не повезло. не могли бы вы рассказать об альтернативном методе

$http.get("job.json")
    .success(function(response) {
        $scope.big=response;      
    });

это метод, который я использовал, и это мой json-код

{ "days": [{ "dayname": "Sun,23 Aug 2015", "date": "2015-08-23", "hours": "hoursArray(array24)" }, { "dayname": "Mon,24 Aug 2015", "date": "2015-08-24", "hours": "hoursArray(array24)" }, { "dayname": "Tue,25 Aug 2015", "date": "2015-08-25", "hours":"hoursArray(array24)" }, { "dayname": "Wed,26 Aug 2015", "date": "2015-08-26", "hours": "hoursArray(array24)" }] }

  • 0
    используйте правильный относительный путь к файлу json. это должно решить вашу проблему.
  • 0
    1. Это не файл JSON. это Javascript. Пожалуйста, посмотрите синтаксис JSON! Ключи должны быть заключены в кавычки "", и вы не можете использовать функции в файле JSON. - Что означает locally built ? Вы построили это на клиенте, браузере? Зачем вам нужно использовать $ http для удаленного вызова, если файл уже есть где-то локально?
Показать ещё 6 комментариев
Теги:

2 ответа

1

вы должны использовать заводскую функцию углового js, т.е. ниже полного файла javascript. oh, кстати, я исправляю вашу синтаксическую ошибку json. вы должны указать оба значения, если используете тип объекта.

var mockDataForThisTest = "json=" + encodeURI(JSON.stringify([
{
"dayname": "Sun,23 Aug 2015",
"date": "2015-08-23",
"hours": "hoursArray(array24)"
},
{
"dayname": "Sun,23 Aug 2015",
"date": "2015-08-23",
"hours": "hoursArray(array24)"
},
{
"dayname": "Sun,23 Aug 2015",
"date": "2015-08-23",
"hours": "hoursArray(array24)"
},
{
"dayname": "Sun,23 Aug 2015",
"date": "2015-08-23",
"hours": "hoursArray(array24)"
}
]));


var app = angular.module('myApp', []);

function PeopleCtrl($scope, $http) {

$scope.people = [];

$scope.loadPeople = function() {
    var httpRequest = $http({
        method: 'GET',
        url: '/echo/json/',
        data: mockDataForThisTest

    }).success(function(data, status) {
        $scope.datas = data;
    });

};

}

вот пример примера HTML, чтобы показать свой json

<div ng-app="myApp">
<div ng-controller="PeopleCtrl">
<p>    Click <a ng-click="loadPeople()">here</a> to load data.</p>
<table>
<tr>
    <th>Id</th>
    <th>First Name</th>
    <th>Last Name</th>
</tr>
<tr ng-repeat="data in datas">
    <td>{{data.dayname}}</td>
    <td>{{data.date}}</td>
</tr>
</table>
</div>
</div>
  • 0
    на самом деле я должен получить эти данные из базы данных, которые я получу в формате JSON
  • 0
    какую базу данных вы используете?
Показать ещё 1 комментарий
-1

Используете ли вы Chrome-браузер?

Если да, проблема должна быть проблемой веб-безопасности в хроме.

Попробуйте запустить хром, используя

" chrome.exe --user-data-dir =" C: /Chrome dev session "--disable-web-security " из вашей команды Run.

Затем откройте файл в этом браузере. вы сможете это получить.

  • 0
    да, я использую браузер Chrome, это будет работать в Firefox
  • 0
    В Firefox и других браузерах эта веб-безопасность будет отключена по умолчанию. Так что вам не о чем беспокоиться. Это будет хорошо работать.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню