Я пытаюсь получить прогрессивный рендеринг для работы в Марко и Коайсе.Marko and Koajs: Почему мой рендеринг асинхронного фрагмента не работает?
Во-первых, я использую модуль запроса-обещания, чтобы дать обещание для передачи данных JSON.
rp = require('request-promise')
function getDataFeed() {
var url = "http://api.dronestre.am/data";
var options = {
url: url,
headers: { 'User-Agent': 'request' },
};
rp(options).then(function(result) {
var info = JSON.parse(result);
return info.strike;
});
};
Затем я использую КОА маршрутизатор и Marko загрузить шаблон, где подача идет в качестве данных
// router method to serve first visualization
router.get('/first', function *() {
let data = {
strikes : getDataFeed()
};
this.body = marko.load('./views/first.marko').stream(data);
this.type = "text/html";
})
И, наконец, в моем шаблоне, я использую асинхронный-фрагмент, чтобы указать, что раздел страницы должны быть загружены асинхронно:
<async-fragment data-provider='data.strikes' var='strikes' client-reorder='true'>
<async-fragment-placeholder>
<p>Loading...</p>
</async-fragment-placeholder>
<for each="strike in strikes">
<tr>
<td>${strike.number}</td>
<td>${strike.country}</td>
<td>${strike.date}</td>
<td>${strike.narrative}</td>
<td>${strike.town}</td>
<td>${strike.deaths}</td>
<td>${strike.target}</td>
<td>${strike.lat}</td>
<td>${strike.lon}</td>
</tr>
</for>
</async-fragment>
к сожалению, ничего не загружает в асинхронном-фрагмент блока. Даже не местозаполнитель.
Как получить образец заполнителя, а затем данные занять свое место в моем шаблоне?
Рад, что ты понял это! Не стесняйтесь присоединяться к нам на Gitter: gitter.im/marko-js/marko –