2016-12-12 131 views
1

如果一個對象是在標籤中創建的 - a如何在標籤-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/

更好的方法將使用可觀察到的模式進行通信。

首先,你安裝的標籤,你的店添加到全局變量騷亂之前創建的index.html的一個store.js

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

之後,所以這將是任何標籤訪問

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

然後在標籤一個可以觸發發送信息

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

而且在標籤-b接收爛攤子

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

更多信息:http://vitomd.com/blog/coding/tag-communication-in-riot-js-part-2/