Javascript 如何从ng2智能表中的API获取数据?

Javascript 如何从ng2智能表中的API获取数据?,javascript,angular,typescript,ng2-smart-table,Javascript,Angular,Typescript,Ng2 Smart Table,我有一个使用Ng2智能表的angular应用程序,需要从API获取数据。我创建了一个从API获取数据的方法(但我不知道它是否有效),主要问题是如何获取数据以显示在Ng2智能表中 下面是我的HTML代码 <div class="mainTbl"> <ng2-smart-table [settings]="settMain" [source]="dataMain"></ng2-smart-table> </div&g

我有一个使用Ng2智能表的angular应用程序,需要从API获取数据。我创建了一个从API获取数据的方法(但我不知道它是否有效),主要问题是如何获取数据以显示在Ng2智能表中 下面是我的HTML代码

 <div class="mainTbl">
            <ng2-smart-table [settings]="settMain" [source]="dataMain"></ng2-smart-table>
        </div>
组成部分.ts:

export class ClientInfoComponent implements OnInit {

  // start main stores tbl
  settMain = {
    noDataMessage: 'عفوا لا توجد بيانات',

    actions: {
      columnTitle: 'إجراءات',
      position: 'right',
    },
    pager: {
      perPage: 25,
    },
    add: {
      addButtonContent: '  إضافة جديد ',
      createButtonContent: '',
      cancelButtonContent: '',
    },
    edit: {
      editButtonContent: '',
      saveButtonContent: '',
      cancelButtonContent: '',


    },
    delete: {
      deleteButtonContent: '',
    },

    columns: {
      index: {
        title: 'مسلسل',
        width: '80px',
      },
      id: {
        title: 'كود العميل',
        width: '80px',
      },
      name: {
        title: 'اسم العميل',
        width: '160px'
      },
      phone: {
        title: ' الهاتف'
      },
      address: {
        title: ' العنوان'
      },
      nots: {
        title: 'ملاحظات'
      }
    }
  };
  dataMain = [
    {
      index:1,
      id:"",
      name: "",
      phone:"",
      address: "",
      nots: "",
    }

  ];
  // end main stores tbl

  private myForm: FormGroup;

  constructor(private formBuilder: FormBuilder,private Service:ClientsService) { }


  ngOnInit() {

    this.Service.getAllClients();

  }
因此,我需要一些帮助来获取数据,以及如何在component.ts dataMain数组中保存数据,提前谢谢,请原谅,因为我是初学者。

[source]=“dataMain”需要设置为从API获取的任何数组

我假设您希望客户端数据显示为函数

getClientData()似乎正在返回客户端数组:

 getAllClients(){
    this.clients = this.http.get(this.url).toPromise().then(
      res=>{
        // you assigned the array to the value this.clients below
        this.clients = res as Clients[];
      }
    )

  }
您的HTML设置应该是
[source]=“this.clients”
,而不是dataMain,因为this.clients是保存要显示的列表的变量。

[source]=“dataMain”需要从HTML模板设置为从API获取的任何数组

我假设您希望客户端数据显示为函数

getClientData()似乎正在返回客户端数组:

 getAllClients(){
    this.clients = this.http.get(this.url).toPromise().then(
      res=>{
        // you assigned the array to the value this.clients below
        this.clients = res as Clients[];
      }
    )

  }

您的HTML设置应该是
[source]=“this.clients”
,而不是dataMain,因为this.clients是保存您想要显示的列表的变量。

您的服务不返回任何内容,您也不设置dataMain nothing感谢您的支持,您可以在我的示例中演示我是如何做到这一点的吗?您的服务不返回任何内容,您也不设置dataMain nothing感谢您的支持,您可以演示我如何在示例中做到这一点吗我的例子?好的,我明白了,我还有一个问题:哪一个性能最好(RXJS的承诺或可观察性)你的建议是什么?我希望我知道,但唉,我是一个非常新手。我喜欢使用this.clients=this.http.get(this.url).toPromise(),因为当我使用异步函数时,它会恢复得很好,我不知道如何用其他方法来实现。如果您正在使用键入,则可以设置此选项。客户端:客户端[];接近类的顶端,而不是在.then()中进行。好吧,我得到了它,我还有另一个问题:哪一个性能最好(承诺或可观察RXJS)你的建议是什么?我希望我知道,但唉,我是一个非常新手。我喜欢使用this.clients=this.http.get(this.url).toPromise(),因为当我使用异步函数时,它会恢复得很好,我不知道如何用其他方法来实现。如果您正在使用键入,则可以设置此选项。客户端:客户端[];接近类的顶端,而不是在.then()中进行(我认为)。