小编pro*_*ler的帖子

使用rxjs进行mat-sort操作无法正常工作

我有mat-table中实现mat-sort的问题,当源是从观察者流创建的.

只需通过以下文档实现它:

ngAfterViewInit() {
        this.dataSource.sort = this.sort;
    }
Run Code Online (Sandbox Code Playgroud)

工作不正常 - 总是只在我的桌子上排序5行.

我想,我的问题是正确使用它与rxjs连接.

不幸的是,在检查了另一个问题/文档后,我找不到任何想法.

我从两个观察者流生成数据源.我还使用了BehaviourSubject(用于初始值),combineLatest和switch map.表格创建得很好,工作得很好.

此外,当我添加过滤器(根据角度材料设计文档)工作正常.但是mat-sort ...不是(只有5个第一行).

ngOnInit() {
        this.filters = itemFilters;
        this.idSubject = new BehaviorSubject(this.filters[0]);
        Observable.combineLatest(this.name, this.selectedFilter)
            .do(_ => this.items = null)
            .switchMap(([name, filterIndex]: [Name | null, number]) => {
                const item = this.filters[filterIndex];
                this.namesSubject.next(item.display);
                return this.itemService.getItems(name);
            })
            .subscribe(this.setItems.bind(this), this.setError.bind(this));
    }
Run Code Online (Sandbox Code Playgroud)

我也尝试使用Observable.zip - 但我认为这也不是我的情况.任何想法/建议都将非常有价值.

我想,我应该将排序方法订阅到可观察流.我有同样的问题与分页.有时工作,有时不工作.

sorting rxjs angular-material angular angular5

12
推荐指数
1
解决办法
753
查看次数

mat-table,mat-sort无法正常工作

我尝试在mat-table中实现mat-sort,在我的项目中.启动我的项目后,我看到"排序"图标,可以点击它,但我的结果中没有任何排序,总是相同的视图.

组件文件:

@Component({
  selector: 'app-test-component',
  templateUrl: './testComponent.component.html',
  styleUrls: ['./testComponent.component.css'],
  providers: [TestService],
})

export class TestComponent implements OnInit, OnDestroy, AfterViewInit {

  displayedColumns = ['Column1'];

  dataSource = new MatTableDataSource<UserModel>();
  private exDisplayNames: Subscription;


  @ViewChild(MatSort) sort: MatSort;

  constructor(private testService: TestService) {   }

  ngOnInit() {
    this.exDisplayNames = this.testService.userNamesChanged.subscribe((userNameData: UserModel[]) => {
      this.dataSource.data = userNameData;
    });
    this.testService.fetchUserName();
  }

  ngAfterViewInit() {
    this.dataSource.sort = this.sort;
  }

  ngOnDestroy() {

    if (this.exDisplayNames) {
        this.exDisplayNames.unsubscribe();
    }
  }

 }
Run Code Online (Sandbox Code Playgroud)

服务文件:

@Injectable()
export class TestService {


    userNamesChanged = new Subject<UserModel[]>();
    private availableUserName: UserModel[] …
Run Code Online (Sandbox Code Playgroud)

html typescript material-design angular

4
推荐指数
2
解决办法
4373
查看次数

Postman 数组架构验证

我在邮递员中遇到数组 json 模式验证的问题。

var schema = {
    "type": "array",
    "items": [{
         "id": {
            "type":"long"
             },
         "name": {
             "type":"string"
             },
         "email": {
             "type":"string"
            }
    }]
};


pm.test('Response schema type nodes verification', function() {
  pm.expect(tv4.validate(pm.response.json(), schema)).to.be.true;
});
Run Code Online (Sandbox Code Playgroud)

响应主体是:

[
    {
        "id": 1,
        "name": "test1",
        "email": "a@a.com"
    },
    {
        "id": 2,
        "name": "test2",
        "email": "a@a.com"
    },
 .
 .
 .
]
Run Code Online (Sandbox Code Playgroud)

我一直通过结果。我也试过删除[].

问题出在哪儿?

json postman json-schema-validator

4
推荐指数
1
解决办法
3314
查看次数

在 docker 中为 alpine linux 安装 Mysql

我在 docker 的 alpine 上安装 mysql 仍然有问题。

我还需要 openjdk:8u201-jdk-alpine3.9。

我的码头档案:

FROM openjdk:8u201-jdk-alpine3.9
RUN apk update && \
    apk add mysql mysql-client && \
    rm -f /var/cache/apk/* && \
    addgroup mysql mysql && \
    mkdir run/mysqld && \
    touch /var/run/mysqld/mysqld.sock && \
    touch /var/run/mysqld/mysqld.pid && \
    chown -R mysql:mysql /var/run/mysqld/mysqld.sock && \
    chown -R mysql:mysql /var/run/mysqld/mysqld.pid && \
    chmod -R 644 /var/run/mysqld/mysqld.sock && \
    apk add openrc --no-cache
Run Code Online (Sandbox Code Playgroud)

但是,在容器中: - 没有 mysql 服务(只有 mariadb,但这可能是 alpine 的标准情况) - /etc/mysql 目录中没有任何 my.cnf 文件 …

mysql docker dockerfile

3
推荐指数
1
解决办法
2万
查看次数

单击行时 Ngb-accordion 展开

我正在尝试为 ng-bootstrap 中的 ng-accordion 找到解决方案。

Accordin - 是否有可能单击行中的任何位置并展开/折叠它?不仅在标签上...

<ngb-accordion #acc="ngbAccordion" activeIds="ngb-panel-0">
  <ngb-panel title="Simple" >
    <ng-template ngbPanelContent>
        Test text
    </ng-template>
  </ngb-panel>
</ngb-accordion>
Run Code Online (Sandbox Code Playgroud)

bootstrap-4 ng-bootstrap angular

3
推荐指数
1
解决办法
6397
查看次数