2016-04-29 17 views
2

私はangularjsを使ってプロジェクトを作成しています。htmlページのangularjsにデータを表示

を私はのようなJSONを持っている:私は、データを表示しながら、問題を抱えている

$scope.customerContracts =  [{ 
     "description": null, 
     "latency": "1", 
     "linkid": "26149e91-f6c8-47fb-a10d-691e76486871", 
     "contracts": [{ 
     "contractid": "26149e91-f6c8-47fb-a10d-691e76486871.2", 
     "duration": 7200, 
     "bandwidth": 300000, 
     "price": 0, 
     "contractStatus": 8, 
     "version": 1560, 
     "deletedtimestamp": 0, 
     "currencyID": "1", 
     "renewal-option": 1, 
     "contract-start-time": 1461918999000, 
     "contract-end-time": 1461926198000 
     }], 

     "tag": null, 
     "connections": ["49b33cd1-5722-4e8e-b40c-03c3407c5efe", "cd354769-d52a-414e-bb7c-f0e0690ddf3b"], 
     "type": "0", 
     "linkStatus": 6, 
     "billing-id": "5f1dd7c5-c48b-44ed-be14-cf2a8730fe27" 
    }] 

ここhtml.Iに使用している私のコードは私が間違っているつもりですどこを知らないされています

<tr ng-repeat="contract in customerContracts.contracts"> 
        <td>{{contract.contractid}}</td> 
        <td>{{contract.contractStatus}}</td> 
        <td>{{contract.bandwidth}}</td> 
        <td>{{contract["contract-start-time"]}}</td> 
          <td>{{contract["contract-end-time"]}}</td> 
        <td>{{contract["renewal-option"]}}</td> 
        <td>{{contract.price}}</td> 
        <td><span class="icon_delete" ng-click="deleteInformation()"></span></td> 
       </tr> 
+0

はあなたには、いくつかのエラーを取得しているシンプルなドットで辞書からアクセスできるように辞書がある大きさの配列customerContracts[0]の0番目の要素を取る必要がありますか? – Abbasi

答えて

3

customerContractsあなたが最初にng-repeatを持っていなければならない配列であり、次に契約を引き継ぐ。以下のような

何か:

<div ng-repeat="contracts in customerContracts"> 
<...> 
<tr ng-repeat="contract in contracts.contracts"> 
        <td>{{contract.contractid}}</td> 
        <td>{{contract.contractStatus}}</td> 
        <td>{{contract.bandwidth}}</td> 
        <td>{{contract["contract-start-time"]}}</td> 
          <td>{{contract["contract-end-time"]}}</td> 
        <td>{{contract["renewal-option"]}}</td> 
        <td>{{contract.price}}</td> 
        <td><span class="icon_delete" ng-click="deleteInformation()"></span></td> 
       </tr> 
<...> 
</div> 
+0

同じ問題が存在する – angular

+0

そして問題は?あなたの問題は何ですか ?データなし?エラー? –

+0

愚かな質問かもしれませんが、OPはテーブル'を囲むテーブル '

'を持っていますか?それ以外の場合は、このコードが有効です。 – thepio

1

は、あなたは、あなたのデータにアクセスしているように、間違っています。 $scope.customerContractsにはcontractsがありません。その中の各オブジェクトは持っています。そしてもう一度contractsは再びオブジェクトの配列です。したがって、もう一度repeatを実行する必要があります。

<elem ng-repeat="customerContract in customerContracts"> 
    <tr ng-repeat="contract in customerContract.contracts"> 
     <! -- Your code -- > 
    </tr> 
</elem> 

ご要望に応じてelemを選択する必要があります。

elemを省略してplunkが見つかりました。

+0

同じ問題は何もありません。 – angular

+0

JSfiddleなどありますか? –

1

はそれがarratだからあなたのJSONがNGリピートのための適切ではありません

$scope.getValue=$scope.customerContracts.contracts; 
1

、このような個別の$の範囲で値を取得します。 JSONを変更することができれば(編集できないシステムから来ていない場合)、このようにして、既存のhtmlが機能します。あなたが確かにそれが配列でないことを知っているならば。

$scope.customerContracts = { 
    "description": null, 
    "latency": "1", 
    "linkid": "26149e91-f6c8-47fb-a10d-691e76486871", 
    "contracts": [{ 
    "contractid": "26149e91-f6c8-47fb-a10d-691e76486871.2", 
    "duration": 7200, 
    "bandwidth": 300000, 
    "price": 0, 
    "contractStatus": 8, 
    "version": 1560, 
    "deletedtimestamp": 0, 
    "currencyID": "1", 
    "renewal-option": 1, 
    "contract-start-time": 1461918999000, 
    "contract-end-time": 1461926198000 
    }], 

    "tag": null, 
    "connections": ["49b33cd1-5722-4e8e-b40c-03c3407c5efe", "cd354769-d52a-414e-bb7c-f0e0690ddf3b"], 
    "type": "0", 
    "linkStatus": 6, 
    "billing-id": "5f1dd7c5-c48b-44ed-be14-cf2a8730fe27" 
}; 

あなたはあなたのhtmlでこれを行うことができますJSON形式を変更することはできませんし、それは動作する場合:

<div ng-repeat="contracts in customerContracts"> 
    <table> 
    <tr ng-repeat="contract in contracts.contracts"> 
     <td>{{contract.contractid}}</td> 
     <td>{{contract.contractStatus}}</td> 
     <td>{{contract.bandwidth}}</td> 
     <td>{{contract["contract-start-time"]}}</td> 
     <td>{{contract["contract-end-time"]}}</td> 
     <td>{{contract["renewal-option"]}}</td> 
     <td>{{contract.price}}</td> 
     <td><span class="icon_delete" ng-click="deleteInformation()"></span></td> 
    </tr> 
    </table> 
</div> 
1

あなたは、これは動作します既存のJSONを使用する場合は

<tr ng-repeat="contract in customerContracts[0].contracts"> 
        <td>{{contract.contractid}}</td> 
        <td>{{contract.contractStatus}}</td> 
        <td>{{contract.bandwidth}}</td> 
        <td>{{contract["contract-start-time"]}}</td> 
          <td>{{contract["contract-end-time"]}}</td> 
        <td>{{contract["renewal-option"]}}</td> 
        <td>{{contract.price}}</td> 
        <td><span class="icon_delete" ng-click="deleteInformation()"></span></td> 
       </tr> 

customerContractsは配列なので、要素である最初の値(辞書)にアクセスしています。だから、今、この値customerContracts[0]はあなたがcustomerContracts[0].contracts

1

angular.module('app',[]).controller('ctrl',function($scope,$http){ 
 

 
$scope.customerContracts =  [{ 
 
     "description": null, 
 
     "latency": "1", 
 
     "linkid": "26149e91-f6c8-47fb-a10d-691e76486871", 
 
     "contracts": [{ 
 
     "contractid": "26149e91-f6c8-47fb-a10d-691e76486871.2", 
 
     "duration": 7200, 
 
     "bandwidth": 300000, 
 
     "price": 0, 
 
     "contractStatus": 8, 
 
     "version": 1560, 
 
     "deletedtimestamp": 0, 
 
     "currencyID": "1", 
 
     "renewal-option": 1, 
 
     "contract-start-time": 1461918999000, 
 
     "contract-end-time": 1461926198000 
 
     }], 
 

 
     "tag": null, 
 
     "connections": ["49b33cd1-5722-4e8e-b40c-03c3407c5efe", "cd354769-d52a-414e-bb7c-f0e0690ddf3b"], 
 
     "type": "0", 
 
     "linkStatus": 6, 
 
     "billing-id": "5f1dd7c5-c48b-44ed-be14-cf2a8730fe27" 
 
    }]; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
<table style="width:100%;text-align:center;"> 
 
    <tr> 
 
    <th>contractid</th> 
 
    <th>contractStatus</th> 
 
    <th>bandwidth</td> 
 
    <th>contract-start-tim</th> 
 
    <th>contract-end-time</th> 
 
    <th>renewal-option</th> 
 
    <th>price</th> 
 
    <th></th> 
 
    </tr> 
 
    <tr ng-repeat="contract in customerContracts[0].contracts"> 
 
        <td>{{contract.contractid}}</td> 
 
        <td>{{contract.contractStatus}}</td> 
 
        <td>{{contract.bandwidth}}</td> 
 
        <td>{{contract["contract-start-time"]}}</td> 
 
          <td>{{contract["contract-end-time"]}}</td> 
 
        <td>{{contract["renewal-option"]}}</td> 
 
        <td>{{contract.price}}</td> 
 
        <td><span class="icon_delete" ng-click="deleteInformation()"></span></td> 
 
    </tr> 
 
</table> 
 
    
 
</div>

関連する問題