2017-01-18 4 views
1

Я новичок в Aurelia. У меня есть WebApi, который вернет некоторые данные, которые я бы хотел заполнить в моей экспортируемой модели, а затем отобразить информацию на экране. Я думаю, что это пойдет в мое событие, но я не уверен. Может кто-нибудь сказать мне, как это сделать. Любая информация была бы наиболее оценена. Мой код ниже.Переплет и отображение данных с Aurelia

--Jason

import 'fetch'; 
 
import {HttpClient, json} from 'aurelia-fetch-client'; 
 
import {inject} from 'aurelia-dependency-injection'; 
 

 
declare var window: { wcApiUrl: string, wcAmtInstanceId: string }; 
 

 
@inject(HttpClient) 
 
export class BureauModUpdate { 
 

 
    files: string; 
 
    
 
    constructor(private http: HttpClient) { 
 
     http.configure(x => { 
 
      x.defaults.headers = { 'Authorization': 'Basic ' + window.wcAmtInstanceId } 
 
     }); 
 
    } 
 

 
    public run(): void { 
 
     //Would I put it here ?? 
 

 
    } 
 
    upload(): void { 
 
     var form = new FormData() 
 
     for (var i = 0; i <= this.files.length; i++) { 
 
      form.append('file', this.files[i]) 
 
      this.http.fetch(window.wcApiUrl + '/Lookup/BureauModUpdate/CreateBureauModUpdates', { 
 
       method: 'post', 
 
       body: form 
 
      }) 
 
     } 
 

 
    
 

 
    } 
 
} 
 

 
export class BureauModUpdateHistory { 
 
    public IndexId: number; 
 
    public UploadID:number; 
 
    public EmployeeNum: number; 
 
    public filename: string; 
 
    public Bureau: string; 
 
    public UploadedDate: Date; 
 
    public UploadedStatus: string; 
 
    public ErrorInfo: string; 
 
    public RecordCount: number; 
 
    
 
}

+0

Это будет стоить вашего TimeTo прочитать Документы об услугах HTTP Aurelia: http://aurelia.io/hub.html#/doc/article/aurelia/fetch-client/latest/http -services/1 – squillman

+0

Это полностью зависит от того, что вы хотите сделать: вызвать запрос на пользовательское событие? Или при активации виртуальной машины? Или по прикреплению компонентов? –

+0

Попытка выполнить получение, как только страница загрузится. –

ответ

0

Чтобы сделать что-то случится при загрузке страницы, используйте метод Aurelia жизненный цикл компонента attached(), как это:

attached() { 
    // do something here 
} 

Для получения более подробной информации о жизненном цикле компонентов см. в документации по адресу Aurelia's DocHub.

Пример использования Fetch для получения данных:

Для получения данных HTTP с использованием выборки (или любой другой веб-сервис), вам нужно использовать асинхронный вызов (с помощью .then в цепи следующего события). Например:

this.http.fetch(url).then(response => { 
    this.data = response; 
} 

Тогда просто связать свои данные this.data (в зависимости от того, какой тип данных вы получаете). Например:

<template> 
    Hello, ${data.fname}! 
</template> 
+0

Загрузка работает отлично. Не проблема. Я просто пытаюсь сделать еще один вызов Webapi, чтобы заполнить BureauModUpdateHistoryclass, а затем отобразить информацию при загрузке страницы. Поэтому я думаю, что это будет что-то вроде run(), который делает очень похожий вызов api ... public run(): void { this.http.fetch (window.wcApiUrl + '/ Lookup/BureauModUpdate/GetLatestBureauModUpdate' , { метод: 'get', }) –

+0

Точка моего сообщения была не столько о процедуре upload(), а в том, чтобы показать вам, что все, что вы хотите запустить при загрузке страницы в методе 'attach()'. Я уточню свой ответ, чтобы сделать его более понятным. – LStarky

+0

Хорошо спасибо. Стук в дверь. Итак, теперь у меня есть класс (BureauModUpdateHistory), к которому я пытаюсь связать ответ. Очень похоже на то, что вы показали с этим. Но теперь он говорит мне, что Type 'Response' не присваивается моему классу. Что мне нужно делать? –