Javascript 如何在angularjs中一个接一个地显示表单?
我试着一次问一个问题,比如“你在X中得了多少分”,当用户选择任何一个给定的按钮时,下一个问题将显示出来,这将继续到某个极限,比如10 目前,我通过一个循环ng repeat显示所有这些问题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> &
<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++;
}