【发布时间】:2016-01-07 21:17:08
【问题描述】:
我正在构建一个输入表单生成系统。我的代码的简化版本如下所示:
<div ng-repeat="ele in form.Fields">
<label for="{{ele.InputId}}">
{{ele.Label}}
</label>
<span ng-if="ele.Type === 'TextBox'">
<input type="text" id="{{ele.InputId}}" ng-model="ele.Value" />
</span>
<span ng-if="ele.Type === 'DropDownList'">
<select id="{{ele.InputId}}"
ng-options="opt.Name as opt.Value for opt in ele.AvailableValues"
ng-model="ele.Value">
</select>
</span>
</div>
问题:
我正在尝试添加功能,如果某个字段包含特定值,则其他字段会做出反应。例如,如果特定字段的选择包含“是”,我希望特定字段成为必需的。另一个例子是我将有一个带有几个选项的选择,根据选择的选项,特定字段变为可见,而其他字段变为隐藏。
我的 form.Fields 是在服务器端生成的,它包含表单的所有字段输入,并且表单生成正确。每个字段对象都包含足够的信息来确定我的反应条件,但我一直在试图弄清楚如何使角度对我想要的条件和规则做出反应。
我应该动态添加一个 ng-changed() 属性到输入吗?我将如何动态添加它们?或者更好地设置动态 $watch/$observe (如果可能的话)?如果我可以正确触发角度,修改字段数组以显示/隐藏/制作所需的东西将是一件轻而易举的事
【问题讨论】:
标签: angularjs json angularjs-ng-repeat ng-repeat