2017-11-07 14 views
0

anggjsおよびmvcの質問/回答シナリオでng-repeatおよびindexingを使用しようとしています。だから私のデータベースのために、私は2つのテーブルがあります。ng-repeatを使用し、テキストボックス入力にインデックスを付ける

  1. が質問

    • を質問
    • InputType(テキストボックス、チェックボックス、ラジオECT)
    • 回答します
    • 回答

一つの質問のために多くの異なる人々から多くの答えが存在する可能性があるため、質問と答えテーブルの間に一対多の関係があります。私のangularjsでは、$ scope変数を使い、ng-repeatを使ってdivの質問を繰り返すことで、データベースから質問を得る方法を得ています。これは、そうのように行われている次のように

//Question 

$scope.Question_NetSuite = { 
    Question1: '', 
    input_type: '' 
} 

//Answer: 
$scope.SysIntClient = 
    { 
    SysInt_ID: '', 
    ID: '', 
    Answer: '' 
    } 

$http.get('/Home/getUserInfo') 
    .then(function (response) { 
    $scope.Question_NetSuite = response.data; 
    console.log("status:" + response.status); 
    console.log("data: " + $scope.Question_NetSuite); 
    }) 

私のdiv要素とhtmlが見えます:

<div class="row" ng-repeat="(index, question) in Question_NetSuite"> 
    Value: {{question.Question1}} 
    {{ index }} 
    <div class="col-lg-6"> 
    <label class="labelQuestion" id="question_label" for="question_answer"> 
     {{question.Question1}} 
    </label> 
    </div> 
    //This seems to be where I am struggling 
    <input type="text" ng-model="SysIntClient.Answer" /> 
    Value: {{SysIntClient.Answer}} 
</div> 

私が午前問題は、私は疑問にテキストボックスからの回答入力をリンクすることです私はデータベースから取得しています。私はangularjsとmvcが新しく、リピーターを使用する必要があることを知っています。質問と同じインデックスに答えを割り当てる必要があります。私はちょうどそれを行う方法を知らない。

私は答えに質問をリンクすることを提案しますか?

+0

:ここ

<div ng-repeat="question in questionsList"> [{{question.id}}]: {{question.name}} <ul> <li ng-repeat="answer in answersList[question.id]"> [{{answer.id}}]: {{answer.answer}} </li> </ul> </div> 

は作業plunkrです質問? – krutkowski86

+0

あります。質問テーブルにQuestionIDを含めて、回答テーブルに外部キーとしてリンクしました。 – user1397978

答えて

0

インデックスを使用することは悪い考えです。質問配列内の質問IDと各回答オブジェクトの質問IDを渡す必要があります。このような何か:questionsList以上

$scope.questionsList = [ 
    { 
     "id": 1, 
     "name": "My first question" 
    }, 
    { 
     "id": 2, 
     "name": "My second question" 
    } 
] 


$scope.answersList = { 
    "1": [ // question ID 
    { 
     "id": 1, 
     "answer": "First answer for question id 1" 
    }, 
    { 
     "id": 2, 
     "answer": "Second answer for question id 1" 
    } 
    ], 
    "2": [ // question ID 
    { 
     "id": 1, 
     "answer": "First answer for question id 2" 
    } 
    ] 
} 

を繰り返し、その後、現在のquestion.idためanswersListを通じて:への答えを割り当てます任意のIDがありますhttp://jsfiddle.net/0pafvrhu/

+0

'li'が代わりにテキストボックスだった場合、これは同じように動作しますか?答えを同じようにマップできますか? – user1397978

+0

はい、もちろんです。 '

  • krutkowski86

    +0

    私の懸念事項は、データベースにあらかじめ設定されているので、一連の質問を簡単に入力できます。私が関心を持っている回答(私はユーザではなく配列から取得する必要がある)のマッピングです – user1397978

    関連する問題