2017-02-02 35 views
0

html元素可以傳遞無值屬性,暗示值,例如requiredinput元素。有可能用角度分量做同樣的事情嗎?是否有可能將無價值的輸入屬性傳遞給組件?

一個例子:

<my-component required></my-component> 

... 

@Component({ 
    selector: 'my-component', 
}) 
export class MyComponent implements OnInit { 

    @Input() required; 

    constructor() { } 

    ngOnInit() { 
    console.log(this.required); // true?? 
    } 
} 
+0

Plz爲您的問題添加更多細節jcroll –

回答

2

角不提供直接支持,但也有變通方法

isRequired:boolean = false; 
    @Input() set required(val) { 
    this.isRequired = true; // only called when the attribute exists 
    } 

constructor(@Attribute('required') required) { 
    console.log('constructor': required == ''); 
    } 

Plunker example

我還沒有測試它的動態添加/刪除屬性時的行爲。

0

無值屬性以空字符串形式出現。如果你需要,可以支持價值和無價值的形式屬性,如下定義二傳手:

@Input() set required(val: (boolean | string)) { 
    if (typeof val === 'boolean') { 
     this.isRequired = val; 
    } else { 
     this.isRequired = value.length === 0 || value === 'true'; 
    } 
} 

這工作與屬性結合([required]="...")爲好。

相關問題