在其他问题Angular4 Rendered2 remove label text on addClass method
中但是在这个新的中,我无法解释为什么要删除第一个元素。
这是我添加验证消息的代码:
const input = this.Render.selectRootElement('[id="mergePassword"]');
const control = this.Render.selectRootElement('[class="form-group"]');
const errorText = this.Render.createText('error field');
const div = this.Render.createElement('div');
this.Render.appendChild(div, errorText);
this.Render.appendChild(input, div);
this.Render.addClass(input, 'text-danger');
this.Render.addClass(control, 'is-invalid');
这是演示,当你按下按钮时,输入被移除:(
https://plnkr.co/edit/x2jHrHgODw7oZJgwNlSk?p=preview
我该如何解决这个问题? (防止删除输入)
更新:
更改逻辑,而不是2 rootElement,从一个引用:
const control = this.Render.selectRootElement('[class="form-control"]');
const errorText = this.Render.createText(error);
const div = this.Render.createElement('div');
this.Render.appendChild(div, errorText);
this.Render.appendChild(this.Render.parentNode(control), div);
this.Render.addClass(this.Render.parentNode(control), 'text-danger');
this.Render.addClass(control, 'is-invalid');
答案 0 :(得分:0)
如果您将createText
的参数更改为字符串,请在UPDATE部分的此行中
const errorText = this.Render.createText('error');
输入字段和按钮之间会出现“错误”文本,输入字段仍然存在。 (在plunker中确认)