Data binding Angular2双向绑定中相同名称的自定义输入和输出

Data binding Angular2双向绑定中相同名称的自定义输入和输出,data-binding,typescript,angular,Data Binding,Typescript,Angular,我知道如何使用此组件的输出值的不同名称修复组件 让我分享我的代码 从“@angular/core”导入{Component,Input,Output,EventEmitter}; 从“./pipes/translation.pipe”导入{TranslationPipe} 我想要的是像这样使用它 [(mobile)]="myParam" [(mobile)]="myParam" 不过,这只适用于设置,自定义组件不支持吗?要使用这种紧凑的语法,需要遵循输入和输出 @Outp

我知道如何使用此组件的输出值的不同名称修复组件

让我分享我的代码

从“@angular/core”导入{Component,Input,Output,EventEmitter}; 从“./pipes/translation.pipe”导入{TranslationPipe}

我想要的是像这样使用它

[(mobile)]="myParam"
[(mobile)]="myParam"

不过,这只适用于设置,自定义组件不支持吗?

要使用这种紧凑的语法,需要遵循输入和输出

@Output('mobileChange')发射器:EventEmitter=neweventemitter();
@输入('mobile')设置移动值(值){
this.msisdn_confirm=this.msisdn=value;
}
不鼓励通过向装饰器传递字符串参数来重命名输入和输出。宁可使用

  @Output() mobileChange: EventEmitter<string> = new EventEmitter<string>();
  @Input() set mobile(value) {
    this.msisdn_confirm = this.msisdn = value;
  }
@Output()mobileChange:EventEmitter=neweventemitter();
@输入()设置移动(值){
this.msisdn_confirm=this.msisdn=value;
}

上述Gunter代码的另一个示例可能会有所帮助:

export class TaskBook {
  public taskBookID: number;
  public title: String; 
}
内部组件代码:

   ....
    <input type="text"  pInputText [(ngModel)]="data!.title" (change)="onDataChange()" />
   ....

 @Component({
  selector: 'taskbook_edit',
  templateUrl: './taskbook_edit.component.html' 
})
    export class TaskbookEditComponent { 

      @Input() data: TaskBook;
      @Output() dataChange = new EventEmitter<TaskBook>();

      constructor() { } 

      onDataChange() { 
        this.dataChange.emit(this.data);
      }  
    }
。。。。
....
@组成部分({
选择器:“任务书编辑”,
templateUrl:“./taskbook_edit.component.html”
})
导出类TaskbookEditComponent{
@输入()数据:任务书;
@Output()dataChange=neweventemitter();
构造函数(){}
onDataChange(){
this.dataChange.emit(this.data);
}  
}
外部-内部调用组件:

<taskbook_edit  [(data)]="taskbookObj" ></taskbook_edit>

 public taskbookObj: TaskBook;

公共任务书obj:任务书;

因此,最好将这些内容放在堆栈溢出上,不管怎样,这是我的主要文档来源。接近本节末尾时,感谢您的快速响应!angular.io文档部分的更新链接:angular.io文档部分的更新链接:甘特的答案是重用OP的代码,但我认为你的答案对于仍然不太熟悉angular语法某些部分的其他人来说更清楚。谢谢你的例子!这就是我的意图:)谢谢你的评论。
export class TaskBook {
  public taskBookID: number;
  public title: String; 
}
   ....
    <input type="text"  pInputText [(ngModel)]="data!.title" (change)="onDataChange()" />
   ....

 @Component({
  selector: 'taskbook_edit',
  templateUrl: './taskbook_edit.component.html' 
})
    export class TaskbookEditComponent { 

      @Input() data: TaskBook;
      @Output() dataChange = new EventEmitter<TaskBook>();

      constructor() { } 

      onDataChange() { 
        this.dataChange.emit(this.data);
      }  
    }
<taskbook_edit  [(data)]="taskbookObj" ></taskbook_edit>

 public taskbookObj: TaskBook;