Javascript 更改文本框的值,但不更新角度中窗体内的模型

Javascript 更改文本框的值,但不更新角度中窗体内的模型,javascript,angular,unit-testing,jasmine,Javascript,Angular,Unit Testing,Jasmine,所以我一直在尝试为我的单元测试设置文本框的值。该文本框使用ngModel链接到零部件模型。在一个简单的例子中,我成功地实现了这一切。然而,当我将文本框放入表单标签中时,它就会停止工作,我想知道是否有人能告诉我为什么 因此,我有以下部分: import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls

所以我一直在尝试为我的单元测试设置文本框的值。该文本框使用ngModel链接到零部件模型。在一个简单的例子中,我成功地实现了这一切。然而,当我将文本框放入表单标签中时,它就会停止工作,我想知道是否有人能告诉我为什么

因此,我有以下部分:

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  newOrgName:string = 'app';
}
使用以下模板:

<input [(ngModel)]="newOrgName" name="app-input" id="app-input" type="text">
这一切都是可行的,但只要我更改模板,将输入放入表单标记中,如下所示:

<form>
    <input [(ngModel)]="newOrgName" name="app-input" id="app-input" type="text">
</form>


测试失败,它说:“预期‘app’等于‘Bob’”。因此,模型不再被更新。这是为什么?

试着打印“el”的值,看看它是否完美地选择了元素?它返回表单内部测试和表单外部测试时的选择似乎没有问题。你所说的“和表单外部测试”是什么意思?你有两个输入吗?对不起,没有,我是指输入不在表单内的测试。试着打印“el”的值,看看它是否完美地选择了元素?对于表单内的测试和表单外的测试,它返回的选择似乎没有问题。你所说的“和表单外的一个”是什么意思?你有两个输入吗?对不起,没有,我指的是输入不在表单中的测试。
<form>
    <input [(ngModel)]="newOrgName" name="app-input" id="app-input" type="text">
</form>