2017-09-08 3 views
-1

私は角度2のプロジェクトで双方向データバインディングのクラスインスタンスを使いたいと思います。出来ますか? 私は、私が試したが、私はこのエラーに角度2のngModelをクラスデータ型で使用するにはどうすればよいですか?

を得たngModelが親formGroupディレクティブでフォームコントロールを登録するために使用することはできません。理解を容易にするためのコード

---- typescript ---- 

export class PackageOption { 
    name: string; 
    description: string; 
... 
} 
import { PackageOption } from "./packageoption"; 
class PackageComponent extends Component implements OnInit { 
    ... 
    packageOptCurrent: PackageOption; 
    ngOnInit() { 
     this.packageOptCurrent = new PackageOption(); 
    } 
... 
} 
    ---- templete ---- 
     <form [formGroup]="packageOptAddForm" #f="ngForm"> 
       <input type="text" formControlName="name" name="name" [(ngModel)] = "packageOptCurrent.name"> 
     </form> 

を短縮代わりに formGroupのパートナー指示文 "formControlName"を使用してみてください。例:あなたが持っている

Example: 


<div [formGroup]="myGroup"> 
    <input formControlName="firstName"> 
    <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}"> 
</div> 

おかげ

+0

私は試しましたがエラーが発生しました。私は質問を編集します。 –

+0

問題を再現する完全な最小例を投稿してください。コードを見ずにコードが間違っている理由を説明することはできません。 –

+0

もう一度コードを確認してください。 –

答えて

0

これは可能なはずですが、、:

<div [formGroup]="myGroup"> 
     <input formControlName="firstName"> 
    </div> 

    In your class: 

this.myGroup = new FormGroup({ 
    firstName: new FormControl() 
}); 

それとも、このフォームコントロールの登録を回避したい場合、それはngModelOptionsでスタンドアロンだことを示していますコンポーネントデコレータを使用してクラスのコンテキスト内でインスタンスを宣言します。例:

//import typescript person class 

@component({ 
    //some configuration 
}) 
export class SomeClassComponent { 
    mPerson = new Person(); 
} 
関連する問題