2015-10-02 5 views
0
<div ng-app="myApp" ng-controller="customersCtrl"> 
<ul> 
<li ng-repeat="x in names"> 
{{ x.Name + ', ' + x.Country + ', ' + x.City }} 
</li> 
</ul> 
<p ng-repeat="y in localnames">{{ y.Adrs + ', ' + y.Place + ', ' + y.Country }}</p> 
</div> 

var app = angular.module('myApp', []); 
app.controller('customersCtrl', function($scope, $http) { 
    $http.get("customers.json") 
    .success(function (response) {$scope.names = response.records;}); 
    .success(function (response) {$scope.localnames = response.locrecords;}); 
}); 

//JSON 
{ 
"records":[ 
{"Name":"Alfreds Futterkiste","City":"Berlin","Country":"Germany"}, 
{"Name":"Comércio Mineiro","City":"São Paulo","Country":"Brazil"} 
] 

"locrecords":[ 
    {"Adrs":"My Address","Place":"Mavelikara","Country":"India"}, 
    {"Adrs":"My Address","Place":"Mavelikara","Country":"India"} 
] 
} 

Я пытаюсь загрузить данные JSON в HTML с помощью Angular.js. Почему он не работает после добавления второго массива? Он работает при удалении $scope.localnames.Ошибка при загрузке json-данных через AngularJs

Данные и HTML, используемые здесь: https://drive.google.com/file/d/0B4DOAWmRNQn1cGNEWVRqOU9xUVE/view?usp=sharing

ответ

1

Вы получили синтаксическую ошибку в вас код JavaScript. вы должны удалить лишние ;:

var app = angular.module('myApp', []); 
app.controller('customersCtrl', function($scope, $http) { 
    $http.get("customers.json") 
    .success(function (response) {$scope.names = response.records;}) 
    .success(function (response) {$scope.localnames = response.locrecords;}); 
}); 
1

Вы нарушаете свой $http цепочки.

$http.get("customers.json") 
    .success(function (response) {$scope.names = response.records;}); <-- remove ; 
    .success(function (response) {$scope.localnames = response.locrecords;}); 

Кроме того, ваш JSON сломан. Вам не хватает , (запятая) после records.

JSON

{ 
"records":[ 
{"Name":"Alfreds Futterkiste","City":"Berlin","Country":"Germany"}, 
{"Name":"Comércio Mineiro","City":"São Paulo","Country":"Brazil"} 
], 

"locrecords":[ 
    {"Adrs":"My Address","Place":"Mavelikara","Country":"India"}, 
    {"Adrs":"My Address","Place":"Mavelikara","Country":"India"} 
] 
} 
0

Ответ на ваш вопрос. Вы JSON НЕВОЗМОЖНО. Вы пропустили , между записями и locrecords. Форматирование кода помогает ;-)

{ 
"records": [{ 
    "Name": "Alfreds Futterkiste", 
    "City": "Berlin", 
    "Country": "Germany" 
}, { 
    "Name": "Comércio Mineiro", 
    "City": "São Paulo", 
    "Country": "Brazil" 
}], 

"locrecords": [{ 
    "Adrs": "My Address", 
    "Place": "Mavelikara", 
    "Country": "India" 
}, { 
    "Adrs": "My Address", 
    "Place": "Mavelikara", 
    "Country": "India" 
}] 
} 
-2

Его массив, я думаю, что у вас называть, как показано ниже, $ scope.localnames = response.locrecords [0]

И если ее не работает, то и должен вызывать parseJSON (данные [0]) на нем.

Спасибо, Самрат Саркаром блог: coderstutorial.blogspot.com

+0

OP хочет весь массив, не первый элемент из него. Также использование '$ http' дает правильный объект, без необходимости синтаксического анализа. –

+0

Yez right Rene, необходимо удалить дополнительные файлы –

+0

Извините, все еще нет. См. Мой ответ. –

0

Фикс как JSON и HTML

HTML

$http.get("customers.json") 
.success(function (response) { 
    $scope.names = response.records; 
    $scope.localnames = response.locrecords; 
}); 

JSON

{ 
"records":[ 
    {"Name":"Alfreds Futterkiste","City":"Berlin","Country":"Germany"}, 
    {"Name":"Comércio Mineiro","City":"São Paulo","Country":"Brazil"} 
], 
"locrecords":[ 
    {"Adrs":"My Address","Place":"Mavelikara","Country":"India"}, 
    {"Adrs":"My Address","Place":"Mavelikara","Country":"India"} 
] 
} 
Смежные вопросы