gpt4 book ai didi

javascript - 在 AngularJs 中动态显示/隐藏元素

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:22 26 4
gpt4 key购买 nike

我目前正在试验 Angular,我遇到了一个问题,我有一组来 self 的 API 的问题,其中一些依赖于其他问题,当它是一个单选按钮问题时将被检查为是,并且将在名为 ReliesOnID 的属性。

一旦我勾选是,依赖于当前正在检查的问题需要显示。

我有 jQuery 背景,所以我会做一个传递 reliesonid 的函数,因为这将是问题编号并执行类似 $('#question' + reliesonid') .show().

当我重复单击"is"时,如何使单选按钮显示其他问题?多年来一直坚持这一点,因此非常感谢您的帮助。下面是我的代码:

<div id="question{{question.Number}}" ng-repeat="question in questions" ng-class="question.ReliesOnID == null ? 'here' : 'hidden'">
<div ng-if="question.QuestionTypeID == 3" >
<div class="row">
<div class="col-xs-12">
<h5>{{question.Question}}</h5>
</div>
</div>
<div class="row">
<div class="col-xs-2">
<div class="col-xs-4"></div>
<div class="col-xs-8">
<input type="radio" value="yes" name="{{question.Number}}" /><label>Yes</label>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-2">
<div class="col-xs-4"></div>
<div class="col-xs-8">
<input type="radio" value="no" name="{{question.Number}}" /><label>No</label>
</div>
</div>
</div>
</div>
<div ng-if="question.QuestionTypeID == 1">
<div class="row">
<div class="col-xs-12">
<h5>{{question.Question}}</h5>
</div>
</div>
<div class="row">
<div class="col-xs-4">
<input type="text" class="form-control" />
</div>
</div>
</div>
</div>


编辑:数据结构是:

{
"Active": true,
"Comments": false,
"DecimalPlaces": 0,
"F": false,
"FP": false,
"Grouped": null,
"ID": 20500,
"Length": false,
"MP": true,
"Multiline": false,
"Number": 45,
"NumericOnly": false,
"Optional": false,
"Question": "How long ago was the treatment?",
"QuestionID": 45,
"QuestionSectionID": 2,
"QuestionTypeID": 2,
"QuestionnaireID": 298,
"ReliesOnAnswer": true,
"ReliesOnID": 44,
"Weight": false
}

最佳答案

您需要使用 ng-model您的答案如下:
<input type="radio" value="yes" ng-model="question.Answer" name="{{question.Number}}"/><label>Yes</label>

然后在那个问题中你可以有子问题并且只使用 ng-repeat .

ng-if="question.subQuestions && question.Answer !== undefined" ng-repeat="subquestion in question.subQuestions"

当然这完全取决于你的问题结构

编辑
根据您的结构,我会说您需要一个 ng-if在你的ng-repeat可以是这样的:
ng-if="!question.ReliesOnID || wasAnswered(question.ReliesOnID)"

wasAnswered您需要访问 questions 的功能该ID的数组和过滤器并检查它是否被回答并返回truefalse

关于javascript - 在 AngularJs 中动态显示/隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39468846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com