RiotJS 3:调用in-tag函数

时间:2016-11-30 18:16:23

标签: function tags riotjs

让我们假设我们有一个像这样的Riot SPA:

的index.html:

<my-tag></my-tag>
<script type="riot/tag" src="my-tag.riot"></script>
<script>
//OK we need a compile() wrapper to access all tag instances
var tags;
riot.compile(function() {
    tags = riot.mount('*');
    });
</script>

MY-tag.riot:

<my-tag>
<p>My tag</p>
<script>
myFunction(){
console.log('doing stuff...')
}
</script>
</my-tag>

我想从index.html调用myFunction()。理论上它可能是这样的:

riot.compile(function() {
    tags = riot.mount('*');
    });
tags[0].myFunction();

实际上,tags数组在compile()包装器之外是不可用的 。当然可以从compile()中调用myFunction():

riot.compile(function() {
    tags = riot.mount('*');
    tags[0].myFunction();
    });

但我不确定这是一个好方法。那么访问标签内功能的最佳做法是什么?提前谢谢!

1 个答案:

答案 0 :(得分:0)

全局定义标签变量并在编译回调中分配值。