首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据表未定义类型- Angular11

数据表未定义类型- Angular11
EN

Stack Overflow用户
提问于 2022-08-11 05:49:07
回答 1查看 47关注 0票数 0

我们有services.ts。需要两个参数

更新的似乎是我看错了错误。此方法导致控制台错误。

代码语言:javascript
复制
private checkLink(row, options) {
        if (options.type ==='link' || options.type ==='custom-method') {
            if (options.type === 'link' || (options.type === 'custom-method' && (row.user_id === this.userData.id) || this.authService.permission('view_subject_data') || this.userData.id === row.section.user_id || this.userData.id === 1)) {
                if (options.permission) {
                    if (this.authService.permission(options.permission)) {
                        this.router.navigate([`${options.link}/${row[options.linkKey]}`]);
                    }
                } else {
                    this.router.navigate([`${options.link}/${row[options.linkKey]}`]);
                }
            }
        }
    }

我把它调用到我的html表,它被许多组件使用。

代码语言:javascript
复制
<span [innerHtml]="datatableService.setColumnData(row[column.prop], column.options, row)"

下面是我传递给setColumnData的数据

代码语言:javascript
复制
columns = [
        {
            name: 'User',
            prop: 'last_name',
            options: {
                type: 'piped',
                pipes: ['displayFullName']
            },
        },
        { 
            name: 'Action',
            prop: 'description'
        },
        {
            name: 'Time',
            prop: 'created_at',
            options: {
                type: 'piped',
                pipes: ['formatDateTime']
            },
        },

    ];

这给了我type undefined,但是代码可以工作。我只需要消除console.log错误。

我知道我只需要像这样提供必要的论据。而且没有错误。

代码语言:javascript
复制
{
    name: 'Action',
    prop: 'description',
    options: ''
},

但问题是,我需要在整个项目中更改所有类似的columns变量。有没有更简单或干净的方法来做这件事?

EN

回答 1

Stack Overflow用户

发布于 2022-08-11 06:07:14

您是否尝试过调用服务&通过component.ts文件将值存储在ngAfterViewInit中,而不是直接在component.html文件中调用它,这些值是在视图呈现后启动的,因此应该抛出未定义的值,因为该值没有启动。

代码语言:javascript
复制
public tableData:yourType = []

ngAfterViewInit():void{
  this.tableData = this.datatableService.setColumnData(this.row[this.column.prop], this.column.options, this.row)
} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73315824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档