因此,我试图在angular 4中创建一个自定义表单组件,我添加了ngModel工作所需的所有内容,但它没有。
这是我的子组件:
export class Search extends ControlValueComponent {
}
它扩展到处理所有“ControlValueAccessor”的类ControlValueComponent。
这是类ControlValueAccessor:
import {ControlValueAccessor, NG_VALUE_ACCESSOR} from "@angular/forms";
import {forwardRef, Input} from "@angular/core";
export class ControlValueComponent implements ControlValueAccessor {
@Input() disabled: boolean;
innerValue: any = '';
static providerValueAcessor( ref: any): any {
return [
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ref), multi: true }
];
}
onTouchedCallback: () => void = () => {};
onChangeCallback: (_: any) => void = () => {};
constructor() {
}
get value(): any {
return this.innerValue;
}
set value(v: any) {
if (v !== this.innerValue) {
this.innerValue = v;
this.onChangeCallback(v);
}
}
writeValue(value: any) {
if (value !== this.innerValue) {
this.innerValue = value;
}
}
registerOnChange(fn: any): void {
this.onChangeCallback = fn;
}
registerOnTouched(fn: any): void {
this.onTouchedCallback = fn;
}
}
为了获得提供程序权限,我使用函数ProviderValueAccessor(位于ControlValueComponent中)如下所示
providers: ControlValueComponent.providerValueAcessor(SysSearch)
但是,当我向子组件添加[(ngModel)]时,它总是得到错误,即ngModel不是该组件的属性
我试着这样用:
<search [(ngModel)] = 'value'><search>
我已经解决了这个问题。
我需要在调用子组件的父组件上直接导入FormsModule,以便ngModel工作...我是这样做的:
import {FormsModule} from "@angular/forms";
@NgModule({
imports: [
FormsModule,
SearchModule
]
这样,父组件就能够使用ngmodel属性。谢谢你的帮助
在类文件中导入FormsModule:
null
import {ControlValueAccessor, NG_VALUE_ACCESSOR} from "@angular/forms";
---->
import {ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule} from "@angular/forms";
问题内容: 即使未显示组件,启动我的Angular应用程序时也会出现以下错误。 我必须将注释掉,这样我的应用才能正常工作。 我正在查看Hero插件,但与我的代码没有任何区别。 这是组件文件: 问题答案: 是的,就是这样,在app.module.ts中,我刚刚添加了:
所以,我试图在angular 4中创建一个自定义表单组件,我添加了ngModel工作所需的一切,但它没有。 这是我的子组件: 我试着这样使用它:
我更新我们的应用程序从rc4到angular2.0.0之一,我得到一个模板解析错误在运行时。这是我的视图模板: 错误在routerlink上。以下是错误: 路由器链接在我看来并不畸形...我到底做错了什么?
我已经在我的应用程序中导入了FormsModule和ReactiveFormsModule。模块,html应该是正确的, 错误 进口 我在运行npm-run-test:local时遇到这个错误,但如果我执行npm-start,它运行得很好。我使用了multiple[(ngModel)],它们都有相同的问题,我只是以这个为例。 我怎样才能解决这个问题?
几天前,我开始使用角项目的离子。我有一个问题,当我服务我的项目.这是错误: NG0303:不能绑定到'ngModel',因为它不是一个已知的属性'离子范围'. 我想用离子范围的亮度普林。这是我的密码。 应用程序。单元ts 我有一些随机组件的共享文件夹和一个随机器。模块来管理它们。 在randomer.module.ts 还有我的brigthness.component.html 亮度组成部分ts:
是的,这可能是第一百次有人遇到这个问题,但没有解决办法对我有效。。。 我使用角2.0.0 rc和什么都不会工作,我想我错过了一些东西,但我不知道是什么 这是我的文件,它们都可以正确传输,是的,我尝试使用不推荐的路由,是的,我根据文档做了,两者都不起作用。 app.component.ts 主要的ts 指数html 其余的文件几乎都是教程中的复制粘贴,所以我不会用更多的代码来垃圾邮件。。。 更新,我