我正在使用@angular/cli 1.0.0-beta.30 学习 Angular 2 和单元测试,并且在测试表单字段有效性的一个方面取得了一些成功,但不是全部。我暂时在我的组件中使用了一个内联模板来暂时消除一层复杂性(单独文件中的表单模板引入了异步性,对吗?)。
的ngOnInit()限定name,其包括用于“必需的”和“的minLength”的验证属性。当前,空表单字段将正确触发“必需”验证器,但不会触发“minLength”验证器。name.errors测试中的数组根本不包含任何对 required 的引用,name.errors['minLength']返回undefined. minLength 需要异步处理吗?我无法找到适合我的问题的文档或示例。
// signup-form.component.ts
...
export class SignupFormComponent implements OnInit {
user: FormGroup;
constructor(private fb: FormBuilder) {
}
ngOnInit() {
this.user = this.fb.group({
name: ['', [Validators.required, Validators.minLength(2)]],
account: this.fb.group({
email: ['', Validators.required, Validators.pattern("[^ @]*@[^ @]*")],
confirm: ['', Validators.required]
})
})
}
onSubmit({ value, valid }: { value: User, valid: boolean }) {
console.log(value, valid);
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试
// signup-form.component.spec.ts
import { …Run Code Online (Sandbox Code Playgroud) 是否可以在cloud9中使用调试来获取HTML中的javascript?我知道调试node.js是可能的,但如果javascript <script>位于HTML 中的块中,或者是从外部脚本加载,该怎么办?
这适用于Webstorm,但你必须有一个浏览器插件,IDE和浏览器(通过插件)互相交谈.
谢谢!
我有一个FormGroups的FormArray。眼下FormArray,experiences具有一个目的,含有3所控制,一个FormGroup companyName,jobDescription,和yearsWorked。问题是,当我console.log FormArray对象时,我看到数据对象的工作方式如下:FormArray.controls.FormGroup.controls。我不知道在这里叫FormGroup是什么,所以我可以访问它。因此,HTML将类似于:
<div *ngFor="let exp of experiences.controls.[what do I call this?].controls">
<input [formControlName]="n" placeholder="Experience">
</div>
Run Code Online (Sandbox Code Playgroud)
文件本身可以在这里看到。