我知道可以使custom structural directives。結構指令,我可以得到屬性值,而不是計算布爾值
<p *my-unless="someExpression">
然而,引號之間的表達與得到的布爾值計算
@Input() set myUnless(condition: boolean) {
console.log(condition);//either true, false, or undefined
}
我怎樣才能使它所以我只是得到一個原始字符串值傳遞,這樣,如果我做了
<p *my-unless="some space delimted values">
我能做
@Input() set myUnless(theString: string) {
console.log(theString);//=> theString == 'some space delimted values'
}
最後,我想提出一個角色的限制指令中所允許的角色的屬性值中說,我不喜歡
@Input()
set forRoles(allowedRoles: string) {
let userTypes = allowedRoles.split(' ');
if(~userTypes.indexOf(this.authenticatorService.getUserType())){
this.viewContainer.createEmbeddedView(this.templateRef);
} else {
this.viewContainer.clear();
}
}
也許結構性指令的指令組件代碼中的檢查是錯誤的,這種事情?它只是覺得,我需要的地方包裝組件都是矯枉過正的。
謝謝。那麼我會首先與你的第一個建議一起去。非綁定屬性。但是,如果我這樣做了,因爲它正在尋找一個綁定屬性,所以我得到'沒有TemplateRef!的提供者?我想,換個方式,我可以制定一個不受限制的自定義指令嗎? – AmmarCSE
我不這麼認爲。結構指令被處理爲綁定屬性。 –