【发布时间】:2019-10-10 00:40:04
【问题描述】:
我正在试验nb-stepper 组件,并想在我的角度组件中设置selectedIndex。在刷新我的活动后在[(selectedIndex)] 上指定双向绑定时,nb-step 不会更新以显示所选步骤。
在我的组件中,我为 selectedActivityIndex 添加了一个 Input(),如果我在 ngOnInit() 中设置此值,它会更新 nb-stepper。但后来,在得到新的活动列表后,我似乎无法通知步进器新的selectedIndex。
activities.html
<nb-stepper orientation="vertical" disableStepNavigation="true" [(selectedIndex)]="selectedActivityIndex">
<nb-step *ngFor="let activity of activities"
[label]="activity.name"
[completed]="activity.completed"
></nb-step>
</nb-stepper>
activities.component.ts
export class ActivitiesComponent {
private _selectedActivityIndex: number;
@Output() onSelectedActivityIndexChange = new EventEmitter();
@Input()
get selectedActivityIndex() {
return this._selectedActivityIndex;
}
set selectedActivityIndex(val) {
this._selectedActivityIndex = val;
this.onSelectedActivityIndexChange.emit(this.selectedActivityIndex);
}
constructor(private activitiesService: ActivitiesService) {
this.activities = []
}
ngOnInit() {
this.selectedActivityIndex = 0
this.activitiesService.getActivities()
.subscribe(data => {
if(data['statusCode'] == 200) {
this.activities = data['activities'];
this.selectedActivityIndex = this.activities.map(m => { return m.selected; }).indexOf(true, 0)
}
else
console.log('Failure to get activities: ' + data['statusCode'])
});
}
我希望 selectedIndex 更新为服务返回的 JSON 响应中指定的值,实际上即使在订阅中设置 this.selectedActivityIndex = 1 也不起作用。
【问题讨论】:
标签: angular stepper ngx-admin nebular