使用两个不同的 RiotControl 商店在两个相似的 Riot 组件上确定事件范围的最佳方法是什么?
现在,无论按下哪个按钮,操作都会应用于两个标签,因为控件存储是全局的。我正在尝试找出每个商店限定一个标签的最佳方法。
我的实际用例将有多个嵌套标签,因此传递 Store 可能并不理想。
我在以下位置设置了一个示例: https ://jsfiddle.net/Lsc3znng/
我的标签:
<script type="riot/tag">
<play>
<button onclick={ toggle }>{opts.name}</button>
<p name="status">unclicked</p>
var self = this
RiotControl.on('play', function() {
self.status.innerText = "clicked"
})
toggle(e) {
RiotControl.trigger('play_toggle')
}
</play>
</script>
我的店铺:
function ButtonControlStore() {
riot.observable(this)
var self = this
self.on('play_toggle', function() {
self.trigger('play')
})
}
var controlStoreOne = new ButtonControlStore()
var controlStoreTwo = new ButtonControlStore()
RiotControl.addStore(controlStoreOne)
RiotControl.addStore(controlStoreTwo)