使Angular Material Grid响应(再次)

时间:2018-05-29 18:32:14

标签: angular flexbox grid angular-material angular-material-5

角度材质网格没有响应,它的列在模板中设置和/或您可以设置变量并具有属性绑定。我试图使用后一种方法,我有一个

  

public cols:Observable;

我根据不同的窗口休息写的变量。我正在关注this文章并简单地设置了我的代码。但是,我的.map功能显示为未解析

    ngOnInit(){
        const grid = new Map([
            ["xs", 1],
            ["sm", 2],
            ["md", 2],
            ["lg", 3],
            ["xl", 3]   ]);   let start: number;   grid.forEach((cols, mqAlias) => {
            if (this.observableMedia.isActive(mqAlias)) {
              start = cols;
            }   });   
  this.cols = this.observableMedia.asObservable().map(change => {
              console.log(change);
              console.log(grid.get(change.mqAlias));
              return grid.get(change.mqAlias);
            })
            .startWith(start);
    }

我的导入

import { ObservableMedia } from '@angular/flex-layout';
import { Observable } from "rxjs";
import { map, startWith } from 'rxjs/operators';

我也尝试过

导入
import "rxjs/add/operator/map";
import "rxjs/add/operator/startWith";

但是这会引发错误,我假设是因为角度为6。

有关为什么.map函数未定义以及为什么我无法动态更改 cols 变量值的任何帮助?

1 个答案:

答案 0 :(得分:4)

RxJS v5.5.2+已移至 Pipeable 运算符,以改善树木抖动并更轻松地创建自定义运算符。  现在operators需要使用pipe方法合并 Refer This
新导入

import { map} from 'rxjs/operators';

示例

myObservable
  .pipe(filter(data => data > 8),map(data => data * 2),)
  .subscribe(...);

修改后的代码

 this.observableMedia.asObservable().pipe(map(change => {
              console.log(change);
              console.log(grid.get(change.mqAlias));
              return grid.get(change.mqAlias);
            }),startWith(start));