2017-11-13 24 views
1

anglejsを使用してクイズを作成しています。 ラジオボタンのリストの方向を縦または横に表示します。 横になっている場合は、2列に表示します。 私はあなたが水平または垂直道を示すためにあなたのリピータのdivの中にNG-クラスを使用することができます方向に基づいてアンケートの回答方向を表示する方法

var app = angular.module("quizApp", []); 
 

 
     app.controller("quizCtrl", function ($scope) { 
 
      $scope.questions = [ 
 
       { 
 
        question: "Which is the largest country in the world by population?", 
 
        options: ["India", "USA", "China", "Russia"], 
 
        answer: 2, 
 
        direction:0 
 
       }, 
 
       { 
 
        question: "When did the second world war end?", 
 
        options: ["1945", "1939", "1944", "1942"], 
 
        answer: 0, 
 
        direction: 1 
 
       } 
 
      ]; 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script> 
 

 
<body> 
 
    <div ng-app="quizApp" ng-controller="quizCtrl"> 
 
     <div data-ng-repeat="quiz in questions track by $index" data-ng-init="quizIndex = $index" layout="column"> 
 
      <div layout="row"> 
 
       <span data-ng-bind="quiz.question"></span> 
 
      </div> 
 
      <div layout="row" data-ng-repeat="option in quiz.options track by $index" data-ng-init="optionIndex = $index"> 
 
       <input type="radio" data-ng-value="{{option}}" style="margin-right: 5px;" 
 
           name="Options_{{quizIndex}}_Response_{{optionIndex}}" /> 
 
       <span id="spnAnswer_{{quizIndex}}_{{optionIndex}}" data-ng-bind="option" /> 
 
      </div> 
 
     </div> 
 
    </div> 
 
</body>

答えて

1

に水平または垂直

が提供したコードを表示するのに役立ちます。

あなたのHTMLテンプレートは以下のようになりかもしれない

:よう

<div ng-class="'class-for-horizontal-display': !showVertical, 'class-for-vertical-display': showVertical" data-ng-repeat="quiz in questions track by $index" data-ng-init="quizIndex = $index" layout="column"> 

    </div> 

とあなたのコントローラであなたは$スコープ変数 "showVertical" を持っている必要があります。

$scope.showVertical = false 
関連する問題