Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在angularjs中一个接一个地显示表单?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在angularjs中一个接一个地显示表单?

Javascript 如何在angularjs中一个接一个地显示表单?,javascript,angularjs,Javascript,Angularjs,我试着一次问一个问题,比如“你在X中得了多少分”,当用户选择任何一个给定的按钮时,下一个问题将显示出来,这将继续到某个极限,比如10 目前,我通过一个循环ng repeat显示所有这些问题 <div ng-repeat="subcode in subjects"> <label class="control-label" for="radios">How much did you score in SUBJECT {{subcode}}?</label> &

我试着一次问一个问题,比如“你在X中得了多少分”,当用户选择任何一个给定的按钮时,下一个问题将显示出来,这将继续到某个极限,比如10

目前,我通过一个循环ng repeat显示所有这些问题

<div ng-repeat="subcode in subjects">
<label class="control-label" for="radios">How much did you score in SUBJECT {{subcode}}?</label>
<div class="btn-group btn-group-m">
<button ng-repeat="grade in gradebuttons" ng-click="saveclick(subcode,grade)" type="button" class="btn btn-default">{{grade}}</button>
</div>
<br/>
</div>
<button ng-click="calculate()">Calculate</button>

你在科目{{子代码}中得了多少分?
{{grade}}

算计
我的计算函数使用子代码saveclick函数中的grade来处理它们,并在按钮下方显示结果

此外,我也不确定如何允许用户只选择一个按钮,比如,如果他们选择A1,然后在同一主题中再次选择A2,那么之前的A1应该被替换。此时,从所有科目中选择所有等级。

尝试类似的方法

<div ng-repeat="i in [1,2,3,4,5,6,7,8,9]" ng-click="increment(j)" ng-show="$index+1 == j">
    <div >{{$index}} How much did you score in SUBJECT {{i}}</div>
</div>`

{{$index}你在{{i}科目中得了多少分
`

increment
是增加索引的scope方法。

我认为您需要这样的方法:

<div ng-repeat="subcode in subjects">
    <label class="control-label" for="radios">How much did you score in SUBJECT {{subcode}}?</label>
    <div class="btn-group btn-group-m">
      <button ng-repeat="grade in gradebuttons" ng-click="saveclick(subcode,grade)"
      type="button" class="btn btn-default" ng-show="selectedGrades[subjects[$parent.$index-1]] || $parent.$index== 0" ng-class="{selected: selectedGrades[subcode] == grade}" >{{grade}}</button>
    </div>
    <br/>
  </div>
  <button ng-click="calculate()">Calculate</button>
尝试:

  • ng show=“selectedGrades[subjects[$parent.$index-1]]| |$parent.$index==0”
    一次显示一个问题,在回答上一个问题后显示下一个问题
  • ng class=“{selected:selectedGrades[subcode]==grade}”
    突出显示科目当前选定的成绩

如果您需要隐藏整个问题而不仅仅是按钮,请将
ng show
移动到问题,并将其更改为
ng show=“selectedGrades[subjects[$index-1]]| |$index==0”

如果您需要在问题回答后立即隐藏问题,请尝试:
ng show=“(selectedGrades[subjects[$index-1]]| |$index==0)&&!selectedGrades[subcode]”


您可以使用
ng show
通过使用
$index
显示当前步长,并创建一个类似
currentStep

<div ng-repeat="subcode in subjects" ng-show="currentStep == $index">

这是我的

你想把前面的问题转回去吗?不,我不想。如果他们被回答或点击,让他们永远隐藏,除非点击一个新的按钮“重新开始”,这将清除一切。我已经做了“重新开始”按钮部分,现在我只想知道如何一个接一个地展示这些表格?好的,让我为你做一个简单的介绍。如果我正确理解你的要求,请告诉我。你是我的好朋友,但我仍然在想你是怎么做的,哈哈。事实上,我还想在问题一得到回答就把它隐藏起来,这样下一个问题就取而代之了。我只是在今天才开始研究angularjs的,很抱歉我是一个笨蛋。@user2714639:请参阅我的更新答案,并附上1条demo@user2714639如果您需要进一步的帮助,欢迎您添加其他评论。。。
<div ng-repeat="subcode in subjects" ng-show="currentStep == $index">
$scope.saveclick = function (subcode,grade) {
    $scope.answers.push({'subcode' : subcode, 'grade' : grade});
    $scope.currentStep++;
}