2017-10-15 13 views
1

誰かがなぜ私は全体の配列を印刷できないのか教えてください著者はボードカードにありますか?ここAngularJSアレイ全体を書き込むことができません

https://plnkr.co/edit/abZMTi7fSJ6sX691Ubm0?p=preview

<ul ng-repeat="card in assignedCards"> 
     <div> 
      {{card.name}} {{card._id}} 
     </div> 
      <li ng-repeat="item in card.boardcards.Author">{{item}}</li> 
     </ul> 

とは、この著者はこれがあるかもしれない文字列の配列である、オブジェクト

: 

    $scope.assignedCards = { 
    "_id" : "59e36c44b89e5f2fb01d1310", 
    "name" : "1", 
    "boardcards" : { 
     "name" : "1", 
     "_id" : "59e36c48b89e5f2fb01d1312", 
     "Author" : [ 
      "59df60fb6fad6224f4f9f22e", 
      "59df60fb6fad6224f4f9f22f", 
      "59df60fb6fad6224f4f9f22a" 
     ] 
    } 
} 

EDIT

私はウルの例を使用するが、それでも作家をプリントアウトいけないです理由??

たぶんこちらのモデルマングース

lists : [{ 
    list: String, 
    cards: [{ 
     name: String, 
     Author: [{type : Schema.Types.ObjectId, ref: 'User'}] 
    }] 
    }], 

との問題です?

答えて

0

更新:完全なオブジェクトが共有された後に問題が確認された

、それは以下のコードを参照してください、これはtrack by $indexを使用して解決されている、第二レベルのアレイに重複による反復されませんでした。

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

 
app.controller('MyController', function MyController($scope) { 
 
    $scope.name = 'World'; 
 
    $scope.assignedCards = [{ 
 
    "_id": "59e36c44b89e5f2fb01d1310", 
 
    "name": "1", 
 
    "boardcards": { 
 
     "name": "1", 
 
     "_id": "59e36c48b89e5f2fb01d1312", 
 
     "Author": ["59df60fb6fad6224f4f9f22e", "59df60fb6fad6224f4f9f22f", "59df60fb6fad6224f4f9f22a", "59df60fb6fad6224f4f9f22b", "59df60fb6fad6224f4f9f22c", "59df60fb6fad6224f4f9f22d", "59df60fb6fad6224f4f9f22e"] 
 
    } 
 
    }, { 
 
    "_id": "59e36e2c8c06dd331c3467d6", 
 
    "name": "raz raz", 
 
    "boardcards": { 
 
     "name": "fea", 
 
     "_id": "59e36e508c06dd331c3467f2", 
 
     "Author": ["59df60fb6fad6224f4f9f22d"] 
 
    } 
 
    }] 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-controller='MyController' ng-app="myApp"> 
 
    <p>Hello {{name}}!</p> 
 
    <ul ng-repeat="card in assignedCards"> 
 
    <div> 
 
     {{card.name}} {{card._id}} 
 
    </div> 
 
    <li ng-repeat="item in card.boardcards.Author track by $index">{{item}}</li> 
 
    </ul> 
 
</div>

旧回答:

問題が故にそうあなたのようなだけで行うことができますng-repeatの必要がない、あなたがオブジェクトを使用しています。プロパティassignedCards.boardcards.Authorが配列であることから、我々は値を取得するために私たちのいつものng-repeatを使用することができ、assignedCards.nameまたはassignedCards._idのようなオブジェクトのプロパティにアクセス!

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

 
app.controller('MainCtrl', function($scope) { 
 
    $scope.name='World'; 
 
    $scope.assignedCards= { 
 
    "_id": "59e36c44b89e5f2fb01d1310", "name": "1", "boardcards": { 
 
     "name": "1", "_id": "59e36c48b89e5f2fb01d1312", "Author": [ "59df60fb6fad6224f4f9f22e", "59df60fb6fad6224f4f9f22f", "59df60fb6fad6224f4f9f22a"] 
 
    } 
 
    } 
 
});
<script src="https://code.angularjs.org/1.4.12/angular.js"></script> 
 
<body ng-controller="MainCtrl" ng-app='plunker'> 
 
    <p>Hello {{name}}!</p> 
 

 
    <ul> 
 
    <div> 
 
     {{assignedCards._id}} {{assignedCards.name}} 
 
    </div> 
 
    <li ng-repeat="item in assignedCards.boardcards.Author">{{item}}</li> 
 
    </ul> 
 
</body>

+0

ねえ、私は編集できるように見える? –

+0

@AnetaJabłońskaサーバーから受信した完全なJSONを共有してもらえますか?[ここ](https://ourcodeworld.com/articles/read/112/how-to-pretty-print-beautify-a-json-文字列) –

+0

https://gist.github.com/Turqus/351de033aefa8687b3f4d05b4ca4b123ここに内容{{assignedCards}}(配列オブジェクト) –

1

あなたの代わりに、配列のオブジェクトを持っているので、それは別の方法でそれをしなければなりません。 に(key, value)を使用すると、現在のkeyオブジェクトオブジェクトkeyとそれが持つ値が繰り返されます。上記

<ul ng-repeat="(key, value) in assignedCards"> 
    <div> 
     <span ng-if="key=='name'">{{value}}</span> 
     <span ng-if="key=='_id'">{{value}}</span> 
    </div> 
    <li ng-if="key=='boardcards'" ng-repeat="item in value.Author"> 
     {{item}} 
    </li> 
</ul> 

Demo Here

説明のためのものであり、単純&推奨バージョンはあなたの欲求のオブジェクトにng-repeatを使用してではなく、モデル全体に​​わたりng-repeatを使用せずになります。

<ul> 
    <div> {{assignedCards.name}} {{assignedCards._id}} </div> 
    <li ng-repeat="item in assignedCards.value.Author"> 
     {{item}} 
    </li> 
</ul> 
+0

こんにちは私は編集できますか? –

0

NGリピートassignedCards最初のループでからboardcardsをとります。内側のループでのカードを使用してくださいの代わりにcard.Author card.boardcards。作者

<ul ng-repeat="card in assignedCards"> 
    <div> 
     {{card.name}} {{card._id}} 
    </div> 
     <li ng-repeat="item in card.Author">{{item}}</li> 
    </ul> 
関連する問題