小编Bri*_*est的帖子

数据源更改时,Angular 2子组件未更新

我已经创建了一个表组件,该表组件会根据传入的配置生成一个表。我知道可能有更好的编写可重用组件的方法,但是现在这就是我所拥有的。

基本上,组件采用带有列和数据源对象的配置,然后将列映射到数据源中的属性。

我的问题是,在某个时候我更改了表的数据源之一,例如,我首先清空了数组。

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

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

我以前从未见过的jQuery选择器

我从未见过这种语法的选择器; 有人可以向我解释一下吗?

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; 我刚才没见过像上面这样的选择器.请不要小丑.我搜索了我的答案,包括在这里,但找不到任何帮助.

提前致谢.

syntax jquery selector

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