Angular 角度自定义模型[(…)]

Angular 角度自定义模型[(…)],angular,Angular,我已经创建了一个自定义组件,并希望为其创建一个自定义[ngModel]。假设我有一个组件: <input [(ngModel)]="var1"> // (first input) <my-custom-input [injectedNgModel]="var1"><my-custom-input> 在我的记忆中,我有这样一句话: @Input() injectedNgModel: any; ... <input [(ngModel)]="injecte

我已经创建了一个自定义组件,并希望为其创建一个自定义[ngModel]。假设我有一个组件:

<input [(ngModel)]="var1"> // (first input)
<my-custom-input [injectedNgModel]="var1"><my-custom-input>
在我的记忆中,我有这样一句话:

@Input() injectedNgModel: any;
...
<input [(ngModel)]="injectedNgModel"> // (second input)
然后,当您在第一个输入中输入文本时,它将更新第二个输入。但是,当您在第二个输入中输入文本时,它不会更改第一个输入var1

如何使@Input将数据发送回其父级

我不想要@Output,因为组件太忙了:

我希望得到类似于[injectedNgModel]=x的东西,但我无法让它像这样工作

单词Change为您创造了双向数据绑定,这意味着您有[ngModel]和ngModelChange事件要绑定为[ngModel]香蕉式语法

因此,在您的情况下,您需要将injectedNgModel作为@Input,将injectedNgModelChange作为@Output事件发射器

试试这样的

 modelValue: string;

    @Output()
    injectedNgModelChange: EventEmitter<any> = new EventEmitter<any>();

    @Input()
    get injectedNgModel(): string {
        return this.modelValue;
    }

    set injectedNgModel(val: string) {
        this.modelValue= val;
        this.injectedNgModelChange.emit(this.modelValue);
    }
这将创建与输入变量injectedNgModel的双向数据绑定,您将获得父组件和子组件上的更新值

你可以访问它——这就是“改变”这个词的魔力所在

在子组件中,您可以像这样读取get和set属性


希望这对你有帮助-快乐编码:

嗨,弗雷迪,我会帮助你的…./。。。。。。。。。。。。。。。