如何检查是否存在防暴标签?

时间:2017-09-15 09:46:30

标签: riot.js

如何检查是否已经加载和编译了一个防暴标记(在浏览器中添加了脚本标记),以避免以编程方式再次执行此操作。

换句话说,在我的简化代码中,我应该使用什么代替doTagExist函数?

if (!doesTagExist('my-tag')) {
    riot.compile('/path/to/my-tag', function() {
        riot.mount('dom-node', 'my-tag');
    });
} else {
    riot.mount('dom-node', 'my-tag');
}

1 个答案:

答案 0 :(得分:1)

有同样的问题。经过一番研究后,我认为你不能直接得到它。实现存储在__TAG_IMPL中,无法从外部访问。但是,您可以通过riot.util.tags.selectTags()访问所有已实施标签的选择器,该标签返回逗号分隔的选择列表,即datepicker,[data-is="datepicker"]

为方便起见,Oneliner

riot.util.tags.selectTags().search(/(^|,)my-tag($|,)/g) >= 0

或取决于您的纯度倾向

riot.util.tags.selectTags().search('"my-tag"')

注意,如果暴乱决定开始在选择器中使用单个逗号,则第一个版本是面向未来的。