如何使用riot js将变量传递给子标记

Ahm*_*ani 6 javascript riot.js

我在暴乱中经验不多.我创建的标签层次结构就像

<tag-1>
    <tag-2>
        <tag-3>
        </tag-3>
    </tag-2>
</tag-1>
Run Code Online (Sandbox Code Playgroud)

现在我需要将变量(whcih包含JSON)传递给"tag-3",并且在该变量的每次更新时如何更新"tag-3".现在我正在安装"tag-3"之类的

riot.mount('tag-3', { comm: "Hello" });
Run Code Online (Sandbox Code Playgroud)

其中"comm"是可变的,并且在标签"tag-3"中无法访问mount变量"comm"之后,它显示为undefined.另一件事,每个标签html都在一个单独的".tag"中,并且我正在调用其他标签,就像在"tag-1.tag"文件中调用"tag-2"并在"tag-2.tag"中调用文件我正在调用"tag-3",而在"tag-2.tag"文件中我正在安装"tag-3"

我怎样才能做到这一点 ?

giu*_*ius 5

  1. 您不需要在其他防暴标签中安装标签 - 只需要安装根标签.这就是你的comm参数没有进入的原因tag-3.

  2. 您可以在一个.tag文件中包含多个标记定义.编译标记文件后,内部的暴乱标记是否从多个标记文件加载无关紧要.

  3. 您可以将变量作为标记属性传递 - 它们将在opts变量下可用.

总而言之,您的单个标记文件可能如下所示:

<tag-1>
  <p>This is my TAG1</p>
  <tag-2 comm="{ commValue}"></tag-2>

  <script>
    this.commValue = { text: 'My text' }
  </script>
</tag-1>

<tag-2>
  <p>This is my TAG2 with comm: { opts.comm.text }</p>

  <script>
    this.on('update', function () {
      // you can use 'opts.comm' here
    });

  </script>
</tag-2>
Run Code Online (Sandbox Code Playgroud)