2016-12-12 3 views
1

Если объект создан в tag-a, как его можно получить в tag-b?Совместное использование объектов между тегами Riot.js

тег-a.tag

<tag-a> 

<script> 
const o = {data:() => {return "something" }} 
</script> 

</tag-a> 

тег-b.tag

<tag-b> 

<script> 
// access object o created in tag-a 
</script> 

</tag-b> 

Я попытался с помощью подмешать, но я думаю, что это нужно будет регистрироваться в родительском теге?

ответ

0

Если они делят родителя, вы можете сделать что-то подобное, но не рекомендуется, поскольку теги будут связаны.

<parent> 
    <tag-a></tag-a> 
    <tag-b></tag-b> 
</parent> 

<tag-a> 
    <script> 
    this.o = 'Hi bro' 
    </script> 
</tag-a> 

<tag-b> 
    <span>{this.parent.tags.tag-a.o}</span> 
</tag-b> 

Более подробная информация о простом теге связи: http://vitomd.com/blog/coding/tag-communication-in-riot-js-part-1/

Лучшего подход будет общаться с помощью наблюдаемой картины.

Сначала необходимо создать store.js

//Store.js 
var Store = function(){ 
    riot.observable(this) 
} 

Тогда в index.html перед установкой меток, добавить магазин к глобальной переменной бунт, поэтому он будет доступен из любого тега

<script type="text/javascript"> 
    riot.store = new Store() 
    riot.mount('* ') 
</script> 

Затем в теге-а вы можете вызвать для отправки инфо-

send_info() { 
    riot.store.trigger('send_to_b', 'Hello')  
} 

И в теге-б получить беспорядок возраст

riot.store.on('send_to_b', function(greeting) { 
    self.hi = greeting 
}) 

Подробнее: http://vitomd.com/blog/coding/tag-communication-in-riot-js-part-2/

 Смежные вопросы

  • Нет связанных вопросов^_^