2015-10-18 26 views
0

我正在使用angularjs,EF和asp.net 5. Angularjs使用幾天測驗單頁的應用程序,有一件事情是我解決不了,我會試着解釋。如何通過angularjs在單選按鈕上存儲用戶的操作?

因此,主頁上我有問答題和單選按鈕(是或否),當我按其中的一個,點擊旁邊的下一個問題,並帶回審查,如果第一個問題的答案,無線電按鈕只是刷新。所以問題是如何保存用戶選擇的單選按鈕上的選項?

HTML:

<div class="body-content text-center" ng-controller="QuizController"> 
    <ul> 
     <li ng-repeat="q in questions"> 
      <h2>{{q.Id}}. {{q.Question}}</h2> 
      <label class="radio-inline"> 
       <input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1"> {{q.isTrue}} 
      </label> 
      <label class="radio-inline"> 
       <input type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2"> {{q.isFalse}} 
      </label> 
     </li> 
    </ul> 
    <button type="button" class="btn btn-primary" ng-click="prevQuestion()">Prev</button> 
    <button type="button" class="btn btn-primary" ng-click="nextQuestion()">Next</button> 
    <button type="submit" class="btn btn-primary"ng-click="onSubmit()">Submit</button> 

</div> 

angularjs控制器:

function controller($scope, quizService) { 
     $scope.questions = []; 

     updQuestion(); 

     function updQuestion() { 
      var id = 1; 

      quizService.getQuestions(id).success(function (data) { 
       $scope.questions = data; 
      }); 

      $scope.nextQuestion = function() { 
       id++; 
       quizService.getQuestions(id).success(function (data) { 
        $scope.questions = data; 
       }); 
      }; 

      $scope.prevQuestion = function() { 
       id--; 
       quizService.getQuestions(id).success(function (data) { 
        $scope.questions = data; 
       }); 
      }; 
     } 
    } 

和角服務:

function getQuestions(id) { 
    return $http.get('/api/quiz/' + id); 
} 
+0

你需要使用共享服務,將存儲在回答&你可以使用它們內部的任何您的應用程序的組件及獲得問題的答案 –

+0

商店都已經加載到用戶輸入的響應的$ scope變量問題的價值信息。上一個或下一個點擊時,都會檢查該問題已經加載與否,如果是的話,而不是使對API的調用,從與響應 – PSK

+0

@PrakashKalakoti在$範圍加載它,我想我明白你的的想法,這將是非常有益的,如果你能給我一個小例子如何使用你的建議$範圍。 – Vitaliy

回答

0

問題通過添加陣列等angularjs已經解決:

$scope.binding = { 
     answers: {} 
    }; 

然後在此,我submiting我的回答:

$scope.setAnswer = function (answer, id) { 
     $scope.binding.answers[id] = answer; 
    }; 

在HTML之後,在單選按鈕需要添加以下內容:

ng-model="currentAnswer" ng-value="true" ng-click="setAnswer(true, q.Id)" 
相關問題