2015-06-03 3 views
1

Все,

У меня есть этот объект JSON, как мой ответ (объект, содержащий массив объектов)

вот что я вижу, когда я звоню с помощью веб-браузера

{"skillAndAvgCTList":[{"skill":"Notion Count","avgCT":"22.0"},{"skill":"Tube Count","avgCT":"24.0"},{"skill":"2nd Count","avgCT":"26.0"},{"skill":"Shelf Count","avgCT":"20.0"}]} 

Но когда я делаю это

$http.get("http://localhost:8080/fwms-unknown/svc/usermanage/userManagement").then(function (resp) { 
        console.log('Success', resp.data); 




        this.skillsAndAvgCT = resp.data.skillAndAvgCTList; 
        alert('this.skillsAndAvgCT'+ this.skillsAndAvgCT); 

предупреждение окно показывает:

this.skillsAndAvgCT[object Object], [object Object], [object Object], [object Object]. 

Я хочу использовать ng-repeat и читать «умение» и «avgCT».

Как это сделать? Я думаю, что я как-то ошибаюсь, получая данные ответа в переменную.

+0

вы определенно совершаете ошибки путем отладки с помощью 'alert'. Вместо этого используйте 'console' – smnbbrv

+0

Is' this.skillsAndAvgCT [0] .skill' работает? – Bala

+0

Сделайте 'console.log()' вместо 'alert()' и проверьте в своей консоли консоли значения. [F12 для Chrome] (https://developer.chrome.com/devtools/docs/console) и [Ctrl + Shift + J или Cmd + Shift + J] (https://developer.mozilla.org/en-US/docs/Tools/Browser_Console) –

ответ

0

Так что умениеAndAvgCTList - ваш ключ. Вы можете сделать это, чтобы показать их Working codepen Просто хранить данные в data2 с ключом skillAndAvgCTList (смотрите на codepen):

<ion-content> 
    <div ng-repeat="d in data2">{{d.skill}}<div> 
</ion-content> 
0

this.skillsAndAvgCT не должно быть внутри кавычек.

Это:

alert(this.skillsAndAvgCT); 

Если дать вам то же самое, как:

{"skillAndAvgCTList":[{"skill":"Notion Count","avgCT":"22.0"},{"skill":"Tube Count","avgCT":"24.0"},{"skill":"2nd Count","avgCT":"26.0"},{"skill":"Shelf Count","avgCT":"20.0"}]} 

запустить через него, как это в ЯШ:

for(i = 0; i < this.skillsAvgCT.length; i++) 
{ 
    alert(this.skillsAvgCT[i].skill + " " + this.skillsAvgCT[i].avgCT); 
} 

Для Угловое, добавьте this.SkillsAvgCT к $ scope, а затем выполните ng-repeat в вашем html.

$scope.skillsAvgCT = this.skillsAvgCT; 

HTML (в таблице):

<tr ng-repeat="s in skillsAvgCT"><td>{{s.skill}}</td></tr>

-1

нг-повтор действительно принадлежит в HTML против вашего JavaScript.

<div ng-repeat="model in skillsAndAvgCT"> 
    {{model.skill}} - {{model.avgCT}} 
</div> 

Или просто использовать свои стандартные навыки Javascript перебирать список

var obj = {a:1, b:2, c:3}; 
for (var prop in obj) { 
    alert("o." + prop + " = " + obj[prop]); 
} 
+0

я добавил его в HTML {{model.skill}} {{}} model.avgCT , но это просто печать {{ model.skill}} и {{model.avgCT}} в строке без печати фактических значений. – JBone

+0

Это звучит как проблема с областью. Посмотрите этот пример http://jsfiddle.net/84q86rx2/ – Bobby

+0

Бобби, спасибо за фрагмент кода. Я ценю помощь. – JBone

0

Данные, которые вы получаете от сервера является правильным и вы сохранили его correctly.Just внести изменения в JavaScripts кода, ниже приведены

this.skillsAndAvgCT = resp.data; 

Затем, чтобы показать данные объекта на вашем соответствующем использовании вида следующий фрагмент кода

 <ol> 
     <li ng-repeat="item in skillsAndAvgCT"> 
      <span> skills:{{item.skill}}|AvgCT:{{item.avgCT}}</span> 
     </li> 
    </ol> 
+0

Я сделал это, и он печатает {{item.skill}} и {{item.avgCT}} как есть. так что в основном ng-repeat не получает значения? или мой $ scope.skillAndAvgCTList не получает значения? – JBone

+0

, а также вы сказали this.skillsAndAvgCT = resp.data; но я сделал this.skillsAndAvgCT = resp.data.skillsAndAvgCTList; не так ли? – JBone

+0

, если его печать {{item.avgCT}} и {{item.skill}} затем проверяет, работает ли угловое устройство для приложений ur или нет. Поскольку если item.skills пуст, то угловое будет отображаться только пустое. Check console of browser для любой ошибки, связанной с угловым. –

Смежные вопросы