我正在使用動態組件創建(resolveComponentFactory) ,因此它在靜態@Input()屬性下工作良好。但對於動態設置器而言,它不起作用。我不能這樣做this.componentReference.instance[myPropVar]= someValue
與創建內部組件的setter。動態組件屬性的設置器Angular 2
這可能嗎?謝謝!在我的動態組件
的屬性設置爲:
@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