Riot js使用其他库,如jquery和服务器端渲染

时间:2016-03-06 11:07:31

标签: javascript jquery riot.js

我正在尝试使用jquery对像这样的组件的mount事件进行dom操作。

<my-tag>
    <p>hi</p>

    <script>

        this.on('mount',funciton() {
            $('.abc').hide();
        })
    </script>

</my-tag>

这会抛出如下所示的错误

TypeError: Cannot read property 'toString' of undefined
at ServerResponse.writeHead (_http_server.js:189:44)

如果我更换

$(".abc").hide()

console.log("test");

这完美无缺。知道为什么会这样吗?

以下是版本细节

防暴版:

riot-cli:2.3.14 - https://github.com/riot/cli

riot-compiler:2.3.22 - https://github.com/riot/compiler

更新

只有将其置于 this.on('mount')

时才会出现此问题

我尝试将它放在 this.on('all')上,它运行正常。

1 个答案:

答案 0 :(得分:-1)

我不认为all是有效的骚乱事件。至于在服务器上使用jQuery,我尽可能避免这种情况。如果你在组件中隐藏了一个元素,那么你应该使用Riot来切换一个CSS类。如果此元素在组件外部,则应将事件发送到外部/全局observable / pubsub处理程序。如果你必须使用jQuery,你必须确保你通过Node需要加载jQuery,或者使用像DomJS或Cheerio这样的其他解决方案。