是否可以将Javascript代码与Riot Js中的标记文件分开?

Fer*_*eli 4 javascript riot.js riot

我想知道是否可以这样做:

<todo>
    <div class="greetings">Hello, world!</div>

    <script src="/path/to/my/file.js"></script>
</todo>
Run Code Online (Sandbox Code Playgroud)

当js代码保留在不同的文件中时,标记将保留视图(html):

  • todo.tag(html/css)
  • todo.js

Pet*_*oes 5

为了给出mixin解决方案的替代方案,这里有另一种将标记与逻辑分开的方法.

看看这个Plunker(我的一位同事写了这篇文章).关键部分是引用标记功能的方式.<script>todoTag.call(this, this.opts);</script>.在这种情况下,它todoTag是一个全局函数.但是没有什么可以阻止你从名称间隔功能或使用某种形式的模块加载.

来自plunker:

todo.tag.html:

<todo>
    <!-- your markup -->
    <script>todoTag.call(this, this.opts);</script>
</todo>
Run Code Online (Sandbox Code Playgroud)

todo.tag.js:

function todoTag(opts) {
    // your logic
}
Run Code Online (Sandbox Code Playgroud)