Я пытаюсь работать в концепции тега загрузки. Я могу обернуть другие элементы, чтобы обеспечить согласованное отображение загрузки при извлечении данных async. Рассмотрим следующий код:Как правильно ссылаться на «вложенный» тег с каждым = {} в riotjs
Этот пример опирается на
browserify
(требуется), но не должны иметь значение для вопрос
<test>
<loading>
<ul>
1. = <li each={ items }>{ title }</li>
or
2. = <li each={ parent.items }>{ title }</li>
or
3. = <li each={ opt.data.items }>{ title }</li>
</ul>
</loading>
<script>
require('riot');
require('./loading.tag');
this.items = [
{ title: 'title 1'},
{ title: 'title 2'}
];
this.on('mount', function() {
riot.mount('loading', /* for 3 = */ {data: this.items});
})
</script>
</test>
Как вы можете видеть, тег <test />
и содержит вложенный тег <loading />
, который обертывает содержимое <test />
. Проблема в том, что я не уверен в правильности ссылки на массив элементов (который в реальном мире будет втягиваться через ajax). Я пробовал варианты 1 & 2, но ничего не отображалось. 3 работает (передаёт данные как опционы), но не чувствует себя хорошо.
Это может быть связано с <yield />
, то есть как <loading />
отображает его содержимое, но я не знаю почему.
<loading>
<div><yield /></div>
</loading>
Спасибо за ваш ответ. Что касается 1), у меня есть браузер, который работает с файлами тегов, и на данный момент он выглядит хорошо. 2) Это опечатка от меня, извините, я попытался использовать простой пример за пределами того, над чем я работаю. Я чувствую, что ты на правильном пути со своим последним абзацем. Будучи новичком в этой библиотеке, я не знаком с ее внутренними подразделениями, чтобы сделать осознанный вывод о том, почему и как все работает. Я вернусь к этому снова вечером и посмотрю, смогу ли я применить некоторые изменения в зависимости от вашего ответа. –
Вы были на месте. Я переместил 'require ('./ load.tag')' в родительский тег (который теоретически загрузил бы « », и все работает так, как ожидалось. Теперь мне просто нужно найти способ загрузки вложенных тег, как это, без необходимости объявлять их все в родительских тегах. –
Да, 1 и 2 были довольно неактуальны. Я вычеркну их из моего ответа. Рад, что я мог бы помочь. – chriscauley