相关疑难解决方法(0)

Angular2 NgModel在Jasmine测试中没有获得价值

我在Angular 2中使用模板驱动的表单,我正在尝试先测试它们.我已经搜索过这个网站和互联网的其余部分了,我已经尝试了基本上我能找到的所有内容(主要是一串tick()语句和detectChanges()在fakeAsync中的任何地方)以获得附加到我的输入的NgModel来获取该值可以传递给我的onSubmit函数.input元素的值设置正确,但NgModel永远不会更新,这意味着onSubmit函数无法从NgModel获取正确的值.

这是模板:

<form id="createWorkout" #cwf="ngForm" (ngSubmit)="showWorkout(skillCountFld)" novalidate>
  <input name="skillCount" id="skillCount" class="form-control" #skillCountFld="ngModel" ngModel />
  <button type="submit" id="buildWorkout">Build a Workout</button>
</form>

注意:我知道发送ngSubmit的值会导致测试失败,但这意味着我可以在函数中设置断点并检查NgModel.

这是组件:

import { Component, OnInit } from '@angular/core';
import {SkillService} from "../model/skill-service";
import {NgModel} from "@angular/forms";

@Component({
  selector: 'app-startworkout',
  templateUrl: './startworkout.component.html',
  styleUrls: ['./startworkout.component.css']
})
export class StartworkoutComponent implements OnInit {
  public skillCount:String;

  constructor(public skillService:SkillService) { }

  showWorkout(value:NgModel):void {
    console.log('breakpoint', value.value);
  }

  ngOnInit() {
  }

}

这是规格:

/* tslint:disable:no-unused-variable */
import {async, ComponentFixture, TestBed, fakeAsync, tick} from '@angular/core/testing'; …

forms karma-jasmine angular

10
推荐指数
1
解决办法
6281
查看次数

标签 统计

angular ×1

forms ×1

karma-jasmine ×1