0

我正在尝试制作输入表单。我有选择选项。选择其中一个选项后,我希望根据所选选项填写其他三个字段。

例如:

如果用户选择 Option1 3,则其他字段应包含文本 1_1、1_2、1_3。如果用户选择 Option2 3,则其他字段应包含文本 2_1、2_2、2_3。

做这个的最好方式是什么?

我发现这种方式:

在范围内创建变量

$scope.select_options = [
    {"name": "Option1",
        "field1": "1_1",
        "field2": "1_2",
        "field3": "1_3"},
    {"name": "Option2",
        "field1": "2_1",
        "field2": "2_2",
        "field3": "2_3"},
    {"name": "Option3",
        "field1": "3_1",
        "field2": "3_2",
        "field3": "3_3"}
];

这是html代码

    <select ng-model="opt_select"
        ng-options="option as option.name for option in select_options"
        ng-init="opt_select = opt_select || select_options[0]" id="well"
        name="company" class="input"></select>
<input id="field1" name="field1" placeholder="" class="input" type="text"
       ng-model="opt_select.field1">
<input id="field3" name="field2" placeholder="" class="input" type="text"
       ng-model="opt_select.field2">
<input id="field3" name="field3" placeholder="" class="input" type="text"
       ng-model="opt_select.field3">

这是对的吗?

4

1 回答 1

1

是的。这是它的小提琴:小提琴

但是,当然,因为它是两种方式绑定到您的视图,如果用户编辑输入框,您field的 '将被保存。select_options即如果用户通过在输入框中编辑将of更改field1Option33_1_new,当用户选择另一个选项并选择Option3后面时,它仍然是3_1_new。如果这不适合您的用例,您必须考虑其他事情。

除此之外,对于最佳实践和其他代码审查,您应该发布到https://codereview.stackexchange.com/

于 2013-10-08T17:38:21.780 回答