如何通过JS将riot标记附加到根
How can I append riot tag to the root through JS?
我有以下代码:
<my-tag>
<script>
var self = this;
riot.route('/test', function() {
self.root.innerHTML = '<some-riot-tag></some-riot-tag>';
self.update();
});
</script>
</my-tag>
如果我在没有JS的情况下添加它,它会起作用:
<my-tag>
<some-riot-tag></some-riot-tag>
</my-tag>
如何使用javascript实现此功能?标记被添加到DOM中;但是,它不会更新。
编辑:小改动。
我认为您的解决方案的问题是Riot没有通过JavaScript将插入的HTML解析为Riot标记。一种不同的方法可以更好地工作,例如:
<my-tag>
<some-riot-tag if="{ route == 'test' }" />
<other-riot-tag if="{ route == 'bar' }" />
<script>
var self = this;
riot.route('/test', function() {
self.route = 'foo';
self.update();
});
riot.route('/bar', function() {
self.route = 'bar';
self.update();
});
</script>
</my-tag>
另一种方法可能是使用riot-tag
属性(我还没有测试过,但它应该可以工作):
<my-tag>
<div riot-tag="{ tagName }"></div>
<script>
var self = this;
riot.route('/test', function() {
self.tagName = 'some-riot-tag';
self.update();
});
riot.route('/bar', function() {
self.tagName = 'other-riot-tag';
self.update();
});
</script>
</my-tag>
编辑:似乎riot-tag
在不久的将来会被弃用,但该解决方案仍然可以使用data-is
:http://riotjs.com/guide/#html-元素作为标记(遗憾的是,关于这方面的适当文档似乎很少)。
相关文章:
- 通过js在新选项卡中有条件地打开url
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 为什么在这个网站上不能通过JS访问元素
- 打开“;检查元件”;窗口通过JS
- 当一些事情可以通过JS或CSS完成时,我应该选择哪种方式
- 如何通过js更改td的属性
- 通过js设置页面历史记录和页面内容
- 通过JS添加类时应用CSS转换
- jQuery preventdefault提交表单没有'通过js函数提交表单时无法工作
- JS/JON-通过JS访问JSON中的多个数组
- 如何通过 JS 将内容从一个表单中的一个文本框复制到另一个表单中的另一个文本框
- 添加一个元素,它's通过JS的类名
- 通过JS/AAJAX在XML文件中搜索1个数据
- 如何通过JS在不干扰其标记的情况下更改HTML文档中字符串的所有实例
- 如何通过JS将值传递给控制器和局部视图
- 如何通过JS将riot标记附加到根
- 将href链接添加到通过js鼠标悬停显示的图像
- CSS 大小相互依赖和在 Chrome 中通过 JS 调整大小:可能的错误
- 通过JS更新时,Angularjs输入不会更改,而不是手动更新
- 通过.js包含或调用php或html文件