ログインインターフェイスのコンポーネントセレクター:cx-update-profile
対応するコンポーネント名を見つけますUpdateProfileComponent
::
コンポーネントには、FormGroupのインスタンスが1つだけあります。
サービスのフォームに値が割り当てられるのはいつですか?フォームビルダーを使用する代わりに、Serviceクラスにコピーして、FormGroupインスタンスを手動で作成します。FormGroup
コンストラクターはパラメーターとしてJSONオブジェクトを受け取り、キーはHTMLにバインドされたコントロールの名前であり、値はこれらのコントロールの初期値です。
このフォームグループは、次のようpatchValue
に割り当てます。
テストURL:
http:// localhost:4299 / electronics-spa / en / USD / my-account / update-profile
HTMLの入力要素を、formControlName
ディレクティブコンポーネントのFormControlインスタンスにバインドします。
このサーバークラスにもそのようなis
使用法:
protected user$ = this.userProfile
.get()
.pipe(filter((user): user is User => Boolean(user)));
is
これがtype guard
関数です。このリンクを参照してください。
次の例を考えてみましょう。
function isString(test: any): test is string{
return typeof test === "string";
}
function example(foo: any){
if(isString(foo)){
console.log("it is a string" + foo);
console.log(foo.length); // string function
}
}
example("hello world");
isStringが呼び出された後に関数がtrueを返す場合、入力パラメーターtest
が実際。このとき、TypeScriptコンパイラーは、isString
保護されたIFコードブロックで変数foo
の必要があると見なしstring
ます。 foo.lengthを使用して直接アクセスできます。この文字列変数のlengthプロパティ。
SetvalueとPatchvalueは、AngularFormgroupのメソッドです。これらは両方とも、フォームグループのコントロールの値を設定します。明らかな違いは、setvalueは特定のコントロールを削除できexclude
ないのに対し、patchvalueは削除できることです。
たとえば、名前と年齢の2つのコントロールを持つフォームグループがあるとします。
1つのコントロールの値を設定する場合、これは機能しないため、2つのコントロールの値を設定する必要があります。
formgroup.setValue({
name: ‘Mocrosoft’, age: ‘25’});
フォームグループにかなりの数のフォームコントロールインスタンスが含まれている場合setValue
は、これらのインスタンスのすべての値をsetValue
の入力パラメータとして列挙する必要があります。