Доступ к объекту источника данных строки в шаблоне столбца сетки

Я использую компонент Grid (ejs-grid) из Syncfusion Angular UI Components (Essential JS 2).

Проблема в том, что я не могу получить доступ к исходному объекту из источника данных для текущей строки при использовании шаблона столбца. Вот почему после щелчка по черному квадрату в ячейке в Stackblitz вывод под сеткой :

То же самое: ложь

let-data переменная не содержит исходный объект из источника данных, а скорее его копию.

Шаблон HTML:

<ejs-grid [dataSource]='data' rowHeight='38' height='200' width="300">
    <e-columns>
        <e-column field='name' headerText='Employee Name' width='200'>
            <ng-template #template let-data>
                <div>
                    <span>{{ data.name }}</span>
                    <span>{{ data.testFunc() }}</span>
                    <span
                        (click)="onClick(data)"
                        class="clickable">
                    </span>
                </div>
            </ng-template>
        </e-column>
    </e-columns>
</ejs-grid>
<div>Is the same: {{ isTheSame !== undefined ? isTheSame : 'undefined' }}</div>

Код компонента TypeScript:

export class Item {
    public constructor(public readonly name: string) {
    }

    public testFunc(): string {
        return "testFunc " + this.name;
    }
}

@Component({
    selector: 'app-root',
    templateUrl: 'app.component.html',
    styleUrls: ['app.component.css'],
    providers: [FilterService,VirtualScrollService]
})
export class AppComponent {
    public data: ReadonlyArray<any> = [new Item("Name1")];

    public isTheSame: boolean | undefined;

    public onClick(dataItem: any): void {
        this.isTheSame = dataItem === this.data[0];
    }
}
  1. Есть ли еще одна переменная, кроме let-data, к которой мы могли бы привязать шаблон столбца, чтобы получить исходные данные строки? Если нет, то какое решение?

  2. Может ли кто-нибудь указать мне на источник docs \ Gitub, содержащий список всех переменных, доступных для шаблона столбца? Я знаю по крайней мере еще одного, кроме let-data: let-clientData.


person Alexander Abakumov    schedule 02.08.2019    source источник


Ответы (1)


По умолчанию отрисовка шаблона столбца предоставляет дополнительные сведения (например, объект столбца, индекс и т. Д.) Вместе с данными строки. Эта деталь используется для настройки столбца шаблона на основе пользовательских сценариев. Поэтому при сравнении этого объекта с data[0] он всегда терпел неудачу.

person manivel sellamuthu    schedule 05.08.2019
comment
Спасибо. Я знаю почему сравнение с data[0] не удается. Это точная проблема здесь. Однако возникает вопрос, как получить доступ к исходному элементу из источника данных, а не к какому-либо объекту из элемента данных, внутренне клонированного Grid и предоставленного через let-data? - person Alexander Abakumov; 05.08.2019
comment
Кроме того, если вы работаете с Syncfusion, обратите внимание, что это в ваших ответах. Я предполагаю, что это правило политики StackOverflow \ StackExchange. - person Alexander Abakumov; 05.08.2019