это кажется, что это должно быть тривиально, но я преследовал это в течение 3 недель.
Я хочу получить данные из моего API и отобразить их в шаблоне Vue, который я позаимствовал из NativeScript.org PlaygroundПример погоды.
И я хочу использовать ASYNC / AWAit, так как это выглядит более элегантно.
<template>
<Page class="Page" actionBarHidden="true" backgroundSpanUnderStatusBar="true">
<StackLayout>
<StackLayout row="0">
<Image class="event-image" :src="eventImage" />
<Label class="bold" :text="exported_event0" backgroundColor="gray"></Label>
<Label class="bold" :text="created_event1" backgroundColor="gray"></Label>
<Label class="bold" :text="created_event2" backgroundColor="gray"></Label>
</StackLayout>
</StackLayout>
</Page>
</template>
<script>
const httpModule = require("http");
var exported_event0;
var exported_event1;
var exported_event2;
var created_event1;
var created_event2;
var fetched_event;
export default {
data() {
return {
exported_event0: "A string of a returned event",
exported_event1: created_event1,
exported_event2: created_event2,
};
},
created() {
this.eventImage = "~/images/augustus.jpg";
this.created_event1 = "A stringy created event";
this.created_event2 = getEvent().then(result => console.log(result));
console.log("created_event2 is:" + this.created_event2);
},
};
async function getEvent() {
console.log("-----httpmodule ----------------------------");
let fetched_event = await httpModule.getJSON("https://agile-brushlands-36817.herokuapp.com/events/4.json").then(function(result) {
console.log("---------Event api fetched." + JSON.stringify(result));
}, function(error) {
console.error("the GETJSON eror" + JSON.stringify(error));
});
console.log("---------Event api fetched." + JSON.stringify(fetched_event));
return fetched_event;
};
</script>
1) Можно / нужно экспортировать |данные |упрощенный созданный подход (из шаблона)?
2) Как заставить вызов getEvent () ожидать выборки данных?
Вот (сокращенно) журнал:
'-----httpmodule ----------------------------'
'---------Event api fetched.{"id":4,"title":"The armies of Richard I and Saladin fight it out in the Holy Land. Richard gets Arsuf; Saladin keeps Jerusalem.","year":1191,"position":null,"wikip":"http://en.wikipedia.org/wiki/Saladin#Third_Crusade","image":"","created_at":"2019-01-29T16:48:02.248Z","updated_at":"2019-01-29T16:48:02.248Z","url":"https://agile-brushlands-36817.herokuapp.com/events/4.json"}'
'---------Event api fetched.undefined'
CONSOLE LOG undefined