Riotjs 嵌套标签选项未定义
Riotjs nested tags options are undefined
我正在使用 riotjs 库并有两个标签 "comment-list" 和 "comment"。
评论列表:
<comment-list>
<div each={com in comments} >
<comment level={opts.level} comment={com} type={opts.level == 0 ? "parent" : "child"} ctype={commentType}></comment>
</div>
<div show={opts.level == 0}>
<a id="load-trigger" onclick={fetchMore}>Moar comments</a>
</div>
var self = this;
self.commentType = (self.opts.level === 0 ? "parent" : "child");
</comment-list>
和评论:
<comment>
... some html ...
<div class="row" if={opts.level == 0}>
<div class="col s11 offset-s1 m11 offset-m1 l11 offset-l1" style="padding-left: 0;">
<comment-list level={1} fetchMore={fetchMore}></comment-list>
</div>
</div>
</comment>
comment-list.tag初始化为level = 0,应该将这个level值传递给comment.tag。问题是当我尝试在 comment.tag 中访问 opts.level 时,我得到 'undefined'。 ctype 也是如此。 type 总是 "child" 就好像 comment-list.tag 中的 opts.level 没有定义。
Ps:我不认为这可能是由于评论列表中的 0 被视为 null 或 'undefined',因为我有相同的行为,例如值 1
我直接从 opts 对象传递值是不是做错了什么?
each 创建一个子作用域,因此您需要查看父作用域。
将{opts.level}
更改为{parent.opts.level}
所以您的 <comment-list>
是您当前的范围,您的 each={com in comments}
创建了一个子范围。您的 opts.level
属于 current/parent,而不属于已迭代的单个范围。
https://github.com/riot/riot/issues/1720
这是我今年早些时候针对这个确切问题提出的 github 问题。
我正在使用 riotjs 库并有两个标签 "comment-list" 和 "comment"。
评论列表:
<comment-list>
<div each={com in comments} >
<comment level={opts.level} comment={com} type={opts.level == 0 ? "parent" : "child"} ctype={commentType}></comment>
</div>
<div show={opts.level == 0}>
<a id="load-trigger" onclick={fetchMore}>Moar comments</a>
</div>
var self = this;
self.commentType = (self.opts.level === 0 ? "parent" : "child");
</comment-list>
和评论:
<comment>
... some html ...
<div class="row" if={opts.level == 0}>
<div class="col s11 offset-s1 m11 offset-m1 l11 offset-l1" style="padding-left: 0;">
<comment-list level={1} fetchMore={fetchMore}></comment-list>
</div>
</div>
</comment>
comment-list.tag初始化为level = 0,应该将这个level值传递给comment.tag。问题是当我尝试在 comment.tag 中访问 opts.level 时,我得到 'undefined'。 ctype 也是如此。 type 总是 "child" 就好像 comment-list.tag 中的 opts.level 没有定义。
Ps:我不认为这可能是由于评论列表中的 0 被视为 null 或 'undefined',因为我有相同的行为,例如值 1 我直接从 opts 对象传递值是不是做错了什么?
each 创建一个子作用域,因此您需要查看父作用域。
将{opts.level}
更改为{parent.opts.level}
所以您的 <comment-list>
是您当前的范围,您的 each={com in comments}
创建了一个子范围。您的 opts.level
属于 current/parent,而不属于已迭代的单个范围。
https://github.com/riot/riot/issues/1720
这是我今年早些时候针对这个确切问题提出的 github 问题。