2016-12-07 48 views
0

我有以下數組對象,這是服務器響應。我正在嘗試使用ng-repeat來遍歷此數組並讀取每個值。瞭解對象數組的ng-repeat

雖然試圖在html中使用,array[0].value正在使用,而使用ng-repeat,沒有任何工作。

經過大量的調試,我無法理解ng-repeat是如何爲數組工作的。

這是我的例子:

消息數組:

[ 
{"Id":14,"Text":"hii hello","count":750}, 
{"Id":10009,"Text":"test message","count":6} 
] 

在HTML用於以下:

<div class="my-message" layout="row" layout-align="center center"> 
     {{messages}} <!-- printing the above array --> 
     <div ng-repat="message in messages"> 
     {{ message.Id}}<!-- printing nothing --> 

</div> 
{{ messages[0].Id }} <!-- printing 14 !--> 
</div> 

陣列是在範圍和它也出現在這個網站因爲{{message}}數組正在正確打印。

有人可以幫助我瞭解NG重複的工作和我在哪裏丟失

+3

'ng-repat'中的拼寫錯誤(應該是'ng-repeat')? – kukkuz

+1

我的語法錯誤。謝謝 – user168983

+0

暴露數組在範圍 – Haris

回答

0

的問題是與拼寫錯誤使用「NG重複」,修正後,我的代碼工作正常預期。

1

在你的控制器,你必須有:

$scope.messages = [{"Id":1,...},...] 

。在你的視圖代碼一個錯字(NG-repat - > NG-重複):

<div ng-repat="message in messages"> 
    {{ message.Id}} 
</div> 

必須是:

<div ng-repeat="message in messages"> 
    {{ message.Id}} 
</div> 

它應該是這樣的。

玩得開心

1

希望這將清除您

<!DOCTYPE html> 
 
<html ng-app="plunker"> 
 

 
    <head> 
 
    <meta charset="utf-8" /> 
 
    <title>AngularJS Plunker</title> 
 
    <script>document.write('<base href="' + document.location + '" />');</script> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <script data-require="[email protected]" src="https://code.angularjs.org/1.4.12/angular.js" data-semver="1.4.9"></script> 
 
    <script src="script.js"></script> 
 
    </head> 
 

 
    <body ng-controller="MainCtrl"> 
 
    <div class="my-message" layout="row" layout-align="center center"> 
 
     {{messages}} <!-- printing the above array --> 
 
     <div ng-repeat="message in messages"> 
 
     {{ message.Id}} 
 
     {{ message.Text }} 
 
     {{ message.count }} 
 
</div> 
 
</div> 
 
    </body> 
 
<script> 
 
    var app = angular.module('plunker', []); 
 

 
app.controller('MainCtrl', function($scope) { 
 
    $scope.messages =[ 
 
{"Id":14,"Text":"hii hello","count":750}, 
 
{"Id":10009,"Text":"test message","count":6} 
 
]; 
 
    
 
}); 
 
</script> 
 
</html>