Angularjs 动态表单生成,高级行为
我正在构建一个输入表单生成系统。我的代码的简化版本如下所示:Angularjs 动态表单生成,高级行为,angularjs,json,angularjs-ng-repeat,ng-repeat,Angularjs,Json,Angularjs Ng Repeat,Ng Repeat,我正在构建一个输入表单生成系统。我的代码的简化版本如下所示: <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
<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>
{{ele.Label}
问题是:
我试图添加一个功能,如果某个字段包含特定的值,其他字段会做出反应。例如,如果特定字段的select包含“Yes”,我希望特定字段成为必填字段。另一个例子是,我将有一个带有几个选项的select,根据选择的选项,特定字段将变为可见,而其他字段将变为隐藏
“我的表单.字段”是在服务器端生成的,它包含表单的所有字段输入,并且表单生成正确。每个field对象都包含足够的信息来确定我的反应条件,但我一直在试图找出如何使angular对我所需的条件和规则作出反应
我应该向输入动态添加ng-changed()属性吗?我将如何动态地添加它们?或者最好设置动态$watch/$observe(如果可能的话)?如果我能正确触发,修改字段数组以显示/隐藏/生成所需内容将是轻而易举的事您可以使用ng click函数设置与表单字段所需属性关联的范围值