我在暴动中没有那么多经验。我创建的标签层次结构就像
<tag-1>
<tag-2>
<tag-3>
</tag-3>
</tag-2>
</tag-1>
现在我需要将变量(whcih包含JSON)传递给&#34; tag-3&#34;,并且在该变量的每次更新时,我如何更新&#34; tag-3&#34;。现在我正在安装&#34; tag-3&#34;喜欢
riot.mount('tag-3', { comm: "Hello" });
其中&#34; comm&#34;是变量的,并且在mount变量&#34; comm&#34;之后标签&#34; tag-3&#34;无法访问它显示未定义。另一件事,每个标签html都在一个单独的&#34; .tag&#34;并且使用该标签我正在调用其他标签,例如&#34; tag-1.tag&#34; file&#34; tag-2&#34;被称为&#34; tag-2.tag&#34;我打电话给#34; tag-3&#34;,以及&#34; tag-2.tag&#34;文件我正在安装&#34; tag-3&#34;
我该怎么做?
答案 0 :(得分:5)
您无需在其他防暴标签中安装标签 - 只需要安装根标签。这就是为什么您的aa(8)
参数无法将其转换为comm
。
您可以在一个.tag文件中包含多个标记定义。编译标记文件后,内部的防暴标记是否从多个标记文件加载无关紧要。
您可以将变量作为标记属性传递 - 它们将在tag-3
变量下提供。
总而言之,您的单个标记文件可能如下所示:
opts
答案 1 :(得分:1)
听起来, comm 的价值会随着时间的推移而不断变化。如果这是真的,那么最好的选择是在现有标签之间发送消息的riot.observable()机制。
导致价值变化的任何标签都会“触发”您选择的消息 - 也许是“value_changed”。
riot.observable().trigger('value_changed', {comm: newValueOfComm})
您的tag-3将“监听”消息“value_changed”并根据它执行某些操作。
riot.observable().on('value_changed', function(data) { console.log("new value=" + data.comm); })
有关工作示例,请查看“机制2”: http://vinapps.com/riot-cookbook-app/#/pages/between-page
参考页面在这里: http://riotjs.com/api/observable/