将ParentComponent的ChildComponent属性传播到另一个子组件

时间:2016-01-12 23:17:22

标签: angular

我有以下情况:

AppComponent(parent):

@Component({
  ...
})
export class AppComponent {

  @ViewChild('preloader')
  preloader: MaterializePreloaderComponent;

  get getPreloader(): MaterializePreloaderComponent {
    return this.preloader;
  }

}

ChildComponent:

@Component({
  ...
})
export class ChildComponent {

  preloader: MaterializePreloaderComponent;

}

ChildComponent在AppComponent模板内的路径出口内呈现:

<router-outlet [preloader]="getPreloader"></router-outlet>

我收到了这个错误:

Expression 'getPreloader in AppComponent@13:15' has changed after it was checked. Previous value: 'undefined'. Current value: '[object Object]' in [getPreloader in AppComponent@13:15]

我已经阅读了一些有关此错误的内容,并且发生这种情况是因为预加载器的值在传播后会更改为父级。因此,似乎解决方法是在AppComponent上的ngAfterViewInit方法上触发事件,因此可以使用正确的preloader属性值更新视图。

无论如何,我不喜欢这种做法,也不知道怎么做,希望你能帮助我。

0 个答案:

没有答案