首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SmartAdmin DataTables -如何从component.ts导入ajax数据

SmartAdmin DataTables -如何从component.ts导入ajax数据
EN

Stack Overflow用户
提问于 2018-10-05 20:38:38
回答 1查看 496关注 0票数 0

我正在使用SmartAdmin角5模板来呈现一个DataTable。我已经修改为LoginHistory的JSON datatable示例从存储在web应用程序中的JSON文件中获取ajax数据,如下所示。这个很好用。但是,如何修改它以从component.ts中定义的字符串中获取数据呢?

loginhistory.component.html

代码语言:javascript
复制
<div id="content">

  <div class="row">
    <sa-big-breadcrumbs [items]="['Table', 'Data Tables']" icon="table"
                        class="col-xs-12 col-sm-7 col-md-7 col-lg-4"></sa-big-breadcrumbs>
  </div>

  <sa-widgets-grid>
    <div class="row">
      <article class="col-sm-12">
        <div sa-widget [editbutton]="false" color="blueDark">
          <header>
            <span class="widget-icon"> <i class="fa fa-table"></i> </span>
            <h2>Export to PDF / Excel</h2>
          </header>
          <div>
            <div class="widget-body no-padding">

              <sa-datatable
                [options]="{
                  ajax: '../../assets/api/tables/datatables.standard.json', // <<<<<<< HOW TO USE loginHistoryData FROM loginhistory.component.ts????
                  columns: [
                  {data: 'id'},
                  {data: 'name'},
                  {data: 'phone'},
                  {data: 'company'},
                  {data: 'zip'},
                  {data: 'city'},
                  {data: 'date'}
                  ],
                  buttons: [
                    'copy', 'excel', 'pdf', 'print'
                  ]
                }"
                tableClass="table table-striped table-bordered table-hover"
              >
                <thead>
                <tr>
                  <th data-hide="mobile-p">ID</th>
                  <th data-class="expand">Name</th>
                  <th>Phone</th>
                  <th data-hide="mobile-p">Company</th>
                  <th data-hide="mobile-p,tablet-p">Zip</th>
                  <th data-hide="mobile-p,tablet-p">City</th>
                  <th data-hide="mobile-p,tablet-p">Date</th>
                </tr>
                </thead>
              </sa-datatable>

            </div>
          </div>
        </div>
      </article>
    </div>
  </sa-widgets-grid>
</div>

loginhistory.component.ts

代码语言:javascript
复制
import { Component, OnInit } from '@angular/core';
import { FadeInTop } from "../../shared/animations/fade-in-top.decorator";

@FadeInTop()
@Component({
  selector: 'sa-datatables-case',
  templateUrl: './loginhistory.component.html',
})
export class LoginHistoryComponent implements OnInit {
  public loginHistoryData: any;

  constructor() {}

  ngOnInit() {  
    this.loginHistoryData =
          + '{'
          + '  "data": ['
          + '    {'
          + '      "id": "1",'
          + '      "name": "Jennifer",'
          + '      "phone": "1-342-463-8341",'
          + '      "company": "Et Rutrum Non Associates",'
          + '      "zip": "35728",'
          + '      "city": "Fogo",'
          + '      "date": "03/04/14"'
          + '    },'
          + '    {'
          + '      "id": "2",'
          + '      "name": "Clark",'
          + '      "phone": "1-516-859-1120",'
          + '      "company": "Nam Ac Inc.",'
          + '      "zip": "7162",'
          + '      "city": "Machelen",'
          + '      "date": "03/23/13"'
          + '    },'
          + '  ]'
          + '}';
  }
}
EN

回答 1

Stack Overflow用户

发布于 2018-10-06 23:16:04

一个小小的尝试和错误解决了这个问题。只需将ajax标签更改为data,并包含component.ts参数的名称。

我还使用类型记录命名来清除loginHistoryData参数,而不是使用字符串。

loginhistory.component.html

代码语言:javascript
复制
<div id="content">

  <div class="row">
    <sa-big-breadcrumbs [items]="['Table', 'Data Tables']" icon="table"
                        class="col-xs-12 col-sm-7 col-md-7 col-lg-4"></sa-big-breadcrumbs>
  </div>

  <sa-widgets-grid>
    <div class="row">
      <article class="col-sm-12">
        <div sa-widget [editbutton]="false" color="blueDark">
          <header>
            <span class="widget-icon"> <i class="fa fa-table"></i> </span>
            <h2>Export to PDF / Excel</h2>
          </header>
          <div>
            <div class="widget-body no-padding">

              <sa-datatable
                [options]="{
                  data: loginHistoryData, //<<<< change ajax to data and add the name of the component.ts parameter
                  columns: [
                  {data: 'id'},
                  {data: 'name'},
                  {data: 'phone'},
                  {data: 'company'},
                  {data: 'zip'},
                  {data: 'city'},
                  {data: 'date'}
                  ],
                  buttons: [
                    'copy', 'excel', 'pdf', 'print'
                  ]
                }"
                tableClass="table table-striped table-bordered table-hover"
              >
                <thead>
                <tr>
                  <th data-hide="mobile-p">ID</th>
                  <th data-class="expand">Name</th>
                  <th>Phone</th>
                  <th data-hide="mobile-p">Company</th>
                  <th data-hide="mobile-p,tablet-p">Zip</th>
                  <th data-hide="mobile-p,tablet-p">City</th>
                  <th data-hide="mobile-p,tablet-p">Date</th>
                </tr>
                </thead>
              </sa-datatable>

            </div>
          </div>
        </div>
      </article>
    </div>
  </sa-widgets-grid>
</div>

loginhistory.component.ts

代码语言:javascript
复制
import { Component, OnInit } from '@angular/core';
import { FadeInTop } from "../../shared/animations/fade-in-top.decorator";

@FadeInTop()
@Component({
  selector: 'sa-datatables-case',
  templateUrl: './loginhistory.component.html',
})
export class LoginHistoryComponent implements OnInit {
  public loginHistoryData: any;
  constructor() {}

  ngOnInit() {  
    this.loginHistoryData = [
        {
        "id": "1",
        "name": "Jennifer",
        "phone": "1-342-463-8341",
        "company": "Et Rutrum Non Associates",
        "zip": "35728",
        "city": "Fogo",
        "date": "03/04/14"
        },
        {
        "id": "2",
        "name": "Clark",
        "phone": "1-516-859-1120",
        "company": "Nam Ac Inc.",
        "zip": "7162",
        "city": "Machelen",
        "date": "03/23/13"
        }
    ];
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52673008

复制
相关文章

相似问题

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