【问题标题】:Dynamic form generation, advanced behavior动态表单生成,高级行为
【发布时间】: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


    【解决方案1】:

    您可以使用 ng-click 函数来设置与表单字段的必需属性相关联的范围值。

    【讨论】:

      猜你喜欢
      • 2012-11-15
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 2010-10-11
      • 2015-12-16
      • 2014-08-23
      • 2012-04-02
      • 2015-07-01
      相关资源
      最近更新 更多