2017-10-25 3 views
0

comments配列にあった値をドロップダウンまたは選択フィールドとして取得しようとしています。私はdrop downcommentText値のcommentsの配列を試しています、どうすればng-optionでこれを行うことができますか?例についてMy Plunkeranggjを使ってng-optionsの配列値を取得する方法は?

Iは、配列値のない最初のためng-optionドロップダウンを行いました。今、私は[ ":『commentText 7A』]のコメント配列値を探しています。。私はそれをどのように行うことができますドロップダウンで

私はそれを修正するためにどのように私のために働いていないng-options="item.comments.commentText for item in questions"を試してみました

マイ?データ:

$scope.questions = [ 
{ 
"_id": "59df6c37b6748bc809050699", 
"user": { 
"_id": "59df6a76b6748bc809050697", 
"profileImageURL": "modules/users/client/img/profile/default.png" 
}, 
"__v": 1, 
"comments": [ 
{ 
"created": 1507897712831, 
"email": "[email protected]", 
"name": "Maniselvam selvam", 
"link": "https://drive.google.com/drive/u/0/folders/0B5c-p1bvkfS9REJHMGhMY1BTV1k", 
"commentText": "7A" 
} 
], 
"questionid": "", 
"created": "2017-10-12T13:20:55.383Z" 
} 
] 

マイHTML:

<label>1. Without array value</label> 
    <select ng-model="class" ng-options="item.title for item in questions"> 
    </select> 
    </div> 

    <div style="margin-top: 11px;"> 
    <label>2. With comments array value</label> 
    <select style="margin-left: 20px;" ng-model="class" ng-options="item.comments.commentText for item in questions"> 
    </select> 
    </div> 
+0

は、これは ' "class.commentsの要素のためにelement.commentText" それ' NG-オプションは=をしますか? 'class'は選択した質問のng-modelから来ます。さもなければ、あなたのコメントのためにあなたのダブルアレイ –

+0

(可能な場合は、おかげさまで)を平らにする(http://jsfiddle.net/27UGZ/2/)必要があります。 –

+0

2番目の選択を ' style = "margin-left:20px;"を選択します。 ng-model = "class2" ng-options = "class.commentsの要素のelement.commentText"> 'あなたのngモデルが異なることを確認してください –

答えて

0

編集: 私は編集何: 私は1つに、すべての質問のすべてのコメントをマージ配列、および各コメントに質問IDを追加しました(私たちは質問を使用してフィルタリングすることができるように(最初のNG-モデルを選択)) 私はそれがコントローラーの

<div ng-controller="MyCntrl"> 
    <div> 
     <label>1. Without array value</label> 
     <select ng-model="question" ng-options="item.title for item in questions"> 
     </select> 
    </div> 

    <div style="margin-top: 11px;"> 
    <label>2. With comments array value</label> 
    <select style="margin-left: 20px;" ng-model="class" ng-options="item.commentText for item in filteredComments()"> 
    </select> 
    </div> 

彼スクリプト(question_idを取得するには、コメントで変更できますね実用的な例)

$scope.comments = []; 
    $scope.question = {}; 
    angular.forEach($scope.questions, function(item) { 
    angular.forEach(item.comments, function(comment) { 
     comment.question_id = item._id; 
     $scope.comments.push(comment); 
    }); 
    }); 

    $scope.filteredComments = function() { 
    if ($scope.question._id) { 
     var filteredComments = []; 
     angular.forEach($scope.comments, function(item) { 
     if (item.question_id == $scope.question._id) { 
      this.push(item); 
     } 
     }, filteredComments); 

     return filteredComments; 
    } else { 
     return $scope.comments 
    }; 
    } 

http://plnkr.co/edit/UzP9fnsxxPfngVRAW0c0?p=preview

+0

あなたの答えはありがとうございますそれは私を完全に働いています... –

+0

私はあなたの目標は何かを知っていませんが、私はあなたが第2選択(コメント) (質問) ?それでその答えが良いものではないならば。 – AmenzO

+0

こんにちはAmenzあなたの答えは私のために働いていないので、確認して更新してください、実際には7Aと8Aのような2つの学校と2つのコメントがあります。また、正確な答えを知るためには、プランカも... –

関連する問題