我已经创建了一个表组件,该表组件会根据传入的配置生成一个表。我知道可能有更好的编写可重用组件的方法,但是现在这就是我所拥有的。
基本上,组件采用带有列和数据源对象的配置,然后将列映射到数据源中的属性。
我的问题是,在某个时候我更改了表的数据源之一,例如,我首先清空了数组。
this.members.datasource = []
Run Code Online (Sandbox Code Playgroud)
然后像这样将新数据推送到数据源上...
for (let member in members) {
this.members.datasource.push(members[member]);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,执行此操作时,表不会使用数据源中的新数据进行更新。
我已经在组件中使用了ngDoCheck函数,并且当我更改数据源时确实会触发,但是没有其他反应。
这是所有相关代码和标记...
ip-datatable组件
import { Component, Input, Output, OnInit, EventEmitter, ElementRef, DoCheck } from "@angular/core";
import { ITable } from "./interfaces/index";
@Component({
selector: "ip-datatable",
templateUrl: "./ip-dataTable.component.html"
})
export class IpDataTableComponent implements OnInit, DoCheck {
@Input()
public config: ITable;
public tableData: any;
@Output()
private onRowClick = new EventEmitter();
constructor(private elem: ElementRef) {
}
public ngOnInit() {
// TODO: Decide whether or not to make this …Run Code Online (Sandbox Code Playgroud) parent-child single-page-application typescript angular2-docheck angular
我从未见过这种语法的选择器; 有人可以向我解释一下吗?
var $select = $('<select>', { id: 'csvMarketSelector', name: 'csvMarketSelector' });
Run Code Online (Sandbox Code Playgroud)
要么
var $marketSelectorContainer = $('<div>').add($('<p>', { text: settings.marketLabel })
Run Code Online (Sandbox Code Playgroud)
我理解settings.marketLabel; 我刚才没见过像上面这样的选择器.请不要小丑.我搜索了我的答案,包括在这里,但找不到任何帮助.
提前致谢.