- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想测试实现 ControlValueAccessor 接口(interface)的组件,以允许在我的自定义组件中使用 [(ngModel)]
,但问题是通常的输入是正确的,但 ngModel
- 未定义
。这是代码示例:
@Component({
template: `
<custom-component
[usualInput]="usualInput"
[(ngModel)]="modelValue"
></custom-component>`
})
class TestHostComponent {
usualInput: number = 1;
modelValue: number = 2;
}
describe('Component test', () => {
let component: TestHostComponent;
let fixture: ComponentFixture<TestHostComponent>;
let de: DebugElement;
let customComponent: DebugElement;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
CustomComponent,
],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
因此,我希望我的 customComponent 中的 usualInput Input() 值将等于 1(这是真的),而 ngModel 值将等于 2,但是 ngModel = undefined 并且在调试之后我知道 ControlValueAccessor writeValue 方法不会在测试中调用环境(但它适用于浏览器)。那我该如何解决呢?
最佳答案
在您的 ControlValueAccessor
组件中,您无权访问 ngModel
,除非您注入(inject)它并采取一些技巧来避免循环依赖。
ControlValueAccessor
有 writeValue
方法,它在控件更新时从控件接收值——如果需要,您可以将这个值存储在组件中,然后对其进行测试。
关于具有 ControlValueAccessor 测试的 Angular 2(4) 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44585351/
我已经使用日期、月份和年份的三个下拉菜单实现了一个日期选择器。日期选择器是一个实现了 ControlValueAccessor 并且运行良好的组件。但是,我希望当三个下拉菜单中的任何一个被触摸时,控件
我有这个组件使用 ControlValueAccessor .该组件有自己的内部表单,我找不到在哪里设置表单控件的初始值。 有人可以指出我正确的方向吗? import { Component, C
这是 stackblitz重现的组件/问题。 我构建了一个自定义输入组件: 获取用户对象数组以进行预输入过滤 将您的选择显示为标签 表单控件值是所选用户的数组 users[] 问题是 adding a
为什么当我使用 ControlValueAccessor 时,值不更新并以 react 形式反射(reflect)? 在我的应用程序中,我有一个表单: profileForm = new FormG
我将 Angular 9 与 Angular Material 一起使用,并且通过实现 ControlValueAccessor 接口(interface)来自定义控件。一切正常。 当表单无效时,在我
如果我在我的模板中放置一个实现 ControlValueAccessor 接口(interface)的自定义输入并像这样绑定(bind)到它的更改事件: 我的自定义输入不会在模糊时触发任何事件(
如果我在我的模板中放置一个实现 ControlValueAccessor 接口(interface)的自定义输入并像这样绑定(bind)到它的更改事件: 我的自定义输入不会在模糊时触发任何事件(
我有一个为模板驱动表单构建动态输入组件的指令。默认值由输入组件本身设置。 问题是设置默认值会导致表单被标记为脏。 如何在指令内部设置默认值而不将表单标记为脏? @Directive({ selec
我有这个自定义控件,其中包括一个选择组件。但在我的 react 形式中,值(value)永远不会传播。 有人可以帮我吗? 我的自定义控件: const SOME_SELECT_VALUE_ACCESS
我需要开发一个可重用的列表组件,它返回一个对象列表,一个简单的对象列表,那些应该被分配给 formGroup 对象值中的键。 有没有办法在 Angular 中做一个列表的自定义控件? 这是我尝试过的和
我已经实现了 ControlValueAccessor,如我正在关注的教程中所示。但是,我在其中实现 controlvalueaccessor 的组件似乎没有检测到对 ngModel 的任何更改。我错
我已经创建了一个简单的自定义 input我的 Angular 应用程序中的组件使用 ControlValueAccessor .所以,当我想创建一个表单 input元素,我不必调用 , 只能调用 .
ControlValueAccessors 在过去几个月突然出现在我面前,我对为什么或何时应该使用它们而不是使用 @Input 感到有些困惑。用我的 react 形式。 这是迄今为止我如何使用响应式(
Angular 版本:6.1 我正在尝试使用 Kara Erickson 所称的 Composite ControlValueAccessor 来实现自定义控件,如演示文稿中所示 Angular Fo
我想通过实现 ControlValueAccessor 创建自定义表单元素地址。 我正在尝试创建一个 AddressComponent,其中有多个输入字段。我想在如下所示的 react 形式中使用此组
我想通过实现 ControlValueAccessor 创建自定义表单元素地址。 我正在尝试创建一个 AddressComponent,其中有多个输入字段。我想在如下所示的 react 形式中使用此组
如我所描述in this answer ,我创建了一个自定义 ControlValueAccessor 指令来控制何时触发我的组件的 onChange 事件,并且一切正常,除了当我测试它时, regi
按比例缩小 plunkr:https://plnkr.co/edit/gGCiYjcq70xaewn3n22F?p=preview @Input() model: any; propagateChan
如果自定义组件是另一个组件下的包装器,我不确定如何使用它。 喜欢: ComponentA_withForm | --ComponentA1_withWrapperOfCustomInput |
当您在 ControlValueAccessor 中“写入值”时,为什么 ngOnChanges 没有被触发?我正在通过 registerOnChange 发出一些事件,但我在 ngOnChanges
我是一名优秀的程序员,十分优秀!