角度组件@Input在设置上始终为空

时间:2019-05-07 01:36:31

标签: javascript angular typescript

我有一个具有2个输入的组件,一个已设置,一个是常规属性。

@Input() public set value(val: string) {
        this._selectedOption =
           this._options.find(o => o[this.selectedProperty || 'someDefault'] === val);
    }
@Input() public selectedProperty: string;

在上面的代码中,selectedProperty在第一次有设置值时始终为空。

这是html:

 <my-component [value]="someValue"
                           selectedProperty="value"
                </my-component>

在此组件的其他外观中,selectedProperty将为空。

我如何第一次使selectedProperty不为空?

1 个答案:

答案 0 :(得分:1)

一个有趣的答案。 @Inputs中集合的顺序就是它们在类中声明的顺序。

因此,首先要设置selectedProperty的属性应该是:

@Input() public selectedProperty: string;
@Input() public set value(val: string) {
        this._selectedOption =
           this._options.find(o => o[this.selectedProperty || 'someDefault'] === val);
    }

这通常与JavaScript的工作方式有关,通常这是angular在类中查找输入的顺序。