首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在每行内添加链接- ngx-datatable

在每行内添加链接- ngx-datatable
EN

Stack Overflow用户
提问于 2019-03-10 00:19:52
回答 3查看 3.8K关注 0票数 4

我对angular非常陌生。当单击每行的第一列时,我会尝试在ngx-datatable的每一行上添加一个链接。这将把我带到另一个基于行id的页面,例如,如果我有一个课程表,那么第一列就是课程的名称。当我单击每一行的课程名称时,我希望保存整个行的id,并使用此id调用一个函数,这将把我带到每个课程的相应页面。课程名称应该是一个可见的链接(可点击),并在其上有cursor:指针。我将感谢任何能帮助我完成这项工作的想法。

这是我到目前为止尝试过的(链接不起作用):

代码语言:javascript
复制
 viewCourseTrainings(id: number){
    this.router.navigate(['/home-page/mentor-trainings/'+ id])
  }
代码语言:javascript
复制
 <ngx-datatable
      class="material"
      [rows]="rows"
      [columns]="columns"      
      [columnMode]="'force'"
      [headerHeight]="50"
      [footerHeight]="50"
      [rowHeight]="'auto'"
      [limit]="5">

<ngx-datatable-column name="Name" prop="name">
      <ng-template let-row="row" let-value="value">
            <a (click)="viewCourseTrainings(value.id)">{{value.name}}</a>
      </ng-template>
</ngx-datatable-column>

</ngx-datatable>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-10 00:36:46

到目前为止,您的代码看起来还不错,我建议您传递整个值并访问TS中的id

代码语言:javascript
复制
 <ngx-datatable-column prop="$key">
                <ng-template let-row="row" let-value="value" ngx-datatable-cell-template>
                  <a  class="nav-link edit" (click)="viewCourseTrainings(value)">
                    <i class="fa fa-pencil-square-o" aria-hidden="true"></i>
                  </a>
                </ng-template>
  </ngx-datatable-column> 

正在响应TS

代码语言:javascript
复制
 viewCourseTrainings(valObj: any){
    this.router.navigate(['/home-page/mentor-trainings/'+ valObj.id])
  }
票数 6
EN

Stack Overflow用户

发布于 2019-03-10 01:19:13

谢谢你的帮助,我设法解决了这个问题。

代码语言:javascript
复制
<ngx-datatable-column name="Name" prop="name">
        <ng-template ngx-datatable-cell-template let-row="row" let-value="value">
          <a class="nav-link" (click)="viewCourseTrainings(row)">
            {{row.name}} <!-- or {{value}} -->
          </a>
        </ng-template>
</ngx-datatable-column>

TS和你说的一模一样。

票数 1
EN

Stack Overflow用户

发布于 2021-05-16 17:29:46

实际上,有一种更简单的方法可以做到这一点。您可以使用routerLink并使用双花括号传递行id。这样就不需要在ts文件中定义任何东西了。请看我的示例:

代码语言:javascript
复制
<ngx-datatable-column name="Actions" [width]="80">
   <ng-template let-row="row" ngx-datatable-cell-template>
      <a routerLink="/mentor-trainings/{{row.id}}">View training</a>
   </ng-template>
</ngx-datatable-column>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55079358

复制
相关文章

相似问题

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