動的コンポーネント作成(resolveComponentFactory) で作業しているので、静的@Input()プロパティでうまく動作しています。しかし、ダイナミックなセッターでは機能しません。動的コンポーネントプロパティのセッティング角度2
私はできませんthis.componentReference.instance[myPropVar]= someValue
内部コンポーネントを作成したセッター。
可能ですか?ありがとう!私の動的コンポーネントで
プロパティのセッターは、次のとおりです。
@Input() set lockMessage(val: any) {
if (val) {
console.log("Visit details -> ", val);
}
}
それがそのポスト Angular 2 dynamic component creation
のように同じですが、私は私の動的に作成したコンポーネントへのセッターを持ついくつかのプロパティを追加します。
P.S.はい。私はその建築物でダイナミックコンポーネントにプロパティを設定しようとしました
/**
* public updateSingleComponentProp -> update single prop on component instance
* @param prop {string} -> property name
* @param val {any} -> property value
* @returns {void}
*/
public updateSingleComponentProp(prop: string, val: any): void {
let compInstance = this.componentReference.instance;
compInstance[prop] = val;
if (compInstance.hasOwnProperty(prop) || compInstance.hasOwnProperty('_' + prop))
compInstance[prop] = val;
else
throw new Error("Component doesn't have this property -> " + prop);
}
このプロパティは存在しないため、エラーが発生します。コンポーネントインスタンスをチェックしてそのセッターがプロトタイプに存在する
はあなたが何をしようとして示している[MCVE]もらえますか? – jonrsharpe
これがなぜ問題になるのかわかりません。 'myPropVar'はプロパティの名前と一致する文字列です(' lockMessage')。 @Input()にアクセスする必要はありません。エラーメッセージが表示されますか? –
はい、私の投稿を更新しました – Velidan