使用document.forms.input.value设置其值后,输入字段的值未定义

时间:2018-07-24 12:35:17

标签: angular typescript ecmascript-6 angular5 angular6

我正在开发Angular应用程序,我需要从数组中编辑值。因此,我有一个显示在表中的数组,当我单击表行编辑图标时,它在一些取决于表的输入中向我显示了字段的值。

赞:
[https://i.stack.imgur.com/OP85L.png]

但是当我使用编辑并保存而不进行任何更改时,它会将输入的值转换为未定义的值,而不会保持相同的旧值。 那是我的代码:

document.forms[0].serverAlias.value = alias;
document.forms[0].serverHost.value = host;
document.forms[0].netDataAddress.value = netData;

我的输入:

<div class="col-md-3">
    <div class="wrapper-upload item-block ">
        <label>Alias do Servidor</label>
        <input [(ngModel)]="serverAlias" name="serverAlias" type="text" class="form-control"> 
    </div>
</div>
<div class="col-md-3">
    <div class="wrapper-upload item-block ">
        <label>Host do Servidor</label>
        <input [(ngModel)]="serverHost" name="serverHost" type="text" class="form-control"> 
    </div>
</div>
<div class="col-md-3">
    <div class="wrapper-upload item-block ">
        <label>Endereço do NetData</label>
        <input [(ngModel)]="netDataAddress" name="netDataAddress" type="text" class="form-control"> 
    </div>
</div>

现在,我看到如果我用鼠标单击该字段并单击它,则在保存编辑时它将发送正确的值。

1 个答案:

答案 0 :(得分:0)

也许您应该尝试使用对象并为数据绑定键入内容,而不要使用documents.forms[0]...和局部变量:

public serverToEdit: {
    alias: string,
    host: string,
    netData: string
};
// now in your code instead of document.forms[0]... :
serverToEdit.alias = alias;
serverToEdit.host = host;
serverToEdit.netData = netData;

您的版本表应如下所示:

<div class="col-md-3">
    <div class="wrapper-upload item-block ">
        <label>Alias do Servidor</label>
        <input [(ngModel)]="serverToEdit.alias" name="serverAlias" type="text" class="form-control"> 
    </div>
</div>
<div class="col-md-3">
    <div class="wrapper-upload item-block ">
        <label>Host do Servidor</label>
        <input [(ngModel)]="serverToEdit.host" name="serverHost" type="text" class="form-control"> 
    </div>
</div>
<div class="col-md-3">
    <div class="wrapper-upload item-block ">
        <label>Endereço do NetData</label>
        <input [(ngModel)]="serverToEdit.netData" name="netDataAddress" type="text" class="form-control"> 
    </div>
</div>

保存时,将从对象serverToEdit中获取新值。