我有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 - 但我认为这也不是我的情况.任何想法/建议都将非常有价值.
我想,我应该将排序方法订阅到可观察流.我有同样的问题与分页.有时工作,有时不工作.
我尝试在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) 我在邮递员中遇到数组 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)
我一直通过结果。我也试过删除[].
问题出在哪儿?
我在 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 文件 …
我正在尝试为 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) angular ×3
angular5 ×1
bootstrap-4 ×1
docker ×1
dockerfile ×1
html ×1
json ×1
mysql ×1
ng-bootstrap ×1
postman ×1
rxjs ×1
sorting ×1
typescript ×1