Angular 2获得组件之间的动态值

时间:2017-05-18 11:00:51

标签: javascript twitter-bootstrap angular pagination angular2-components

我正在使用table pluginpagination plugin。我的目标是从分页组件中检测当前页码并将其添加到表组件中。怎么可能?已经尝试过:

import { PaginationComponent } from '../+pagination/pagination.component';
@Component({
 ...
  providers: [PaginationComponent]
})
public currPage: number;
public constructor(private pagin: PaginationComponent) {
    this.currPage = this.pagin.page;
}

哪个有效,但没有检测到任何变化。我必须更改什么才能检测到更改?

1 个答案:

答案 0 :(得分:1)

当您使用它时:

<pagination (pageChanged)="pageChanged()"></pagination>

在上面使用的类中:

export class SomethingThatUsesPagination{
    pageChanged($event){
        this.pageService.onChanged$.emit($event);
    }
}

并创建一个服务并将其注入两个组件

@Injectable()
export class PageService{
   public onChanged$ = new EventEmitter();
}

然后在需要了解分页内容的其他组件内部:

export class OtherComponent{
    constructpr(public pageService: PageService){
        pageService.onChanged$.subscribe(($event) => {
            console.log('$event',$event);
        });
    }
}

这是两个组件正在通过服务进行通信。