SAPeコマースクラウドログインインターフェイスに新しいフィールドを追加する方法

ログインインターフェイスのコンポーネントセレクター: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の入力パラメータとして列挙する必要があります。

おすすめ

転載: blog.csdn.net/i042416/article/details/123659938