脚本标记内的Meteor模板

脚本标记内的Meteor模板,meteor,Meteor,我想用Meteor模板填充script type=“text/html标记 所以,这是一件奇怪的事情,我知道。我想这样做的一半原因是因为Cloud9无法区分JS脚本标记和HTML脚本标记之间的区别,当你尝试在script标记中编写HTML时,它的语法高亮显示和标记完成会中断。我的另一半只是好奇这是否可能,因为存在一个丑陋的罪恶解决方案 因此: <body> <script type="text/html" id="test"> {{> tes

我想用Meteor模板填充
script type=“text/html
标记

所以,这是一件奇怪的事情,我知道。我想这样做的一半原因是因为Cloud9无法区分JS脚本标记和HTML脚本标记之间的区别,当你尝试在
script
标记中编写HTML时,它的语法高亮显示和标记完成会中断。我的另一半只是好奇这是否可能,因为存在一个丑陋的罪恶解决方案

因此:

<body>
    <script type="text/html" id="test">
        {{> test}}
    </script>
</body>

<template name="test">
    <span>Test</span>
</template>

{{>测试}
试验
产生以下结果:

<script type="text/html" id="test">
    <!--label:YRgyaMH8-->
</script>


任何人都有办法强迫它呈现模板,而不是像这样将名称作为注释进行评估吗?

我建议不要使用script标记,而是使用其他一些通用标记,Cloud9不会将其视为JS,Meteor也不会胡乱处理。使用我对这个问题的评论中的示例,它看起来有点像li这样做:

<div id="template">
  <!--<span>test</span>-->
</div>
<template name="koTemplate">
    <div id="myTemplate">
        <span>Here is my template <a href="#">with children</a></span>
    </div>

    <script type="text/html" id="test"></script>
</template>

这是基本的想法。得到结果后,你必须将其转换为Knockout的模板解析。

提交另一个答案b/c我想保留我以前的答案,只是为了记录。我认为这种方法会更好

在html中,您将定义两个部分。第一个部分是放置模板代码的位置。它将放在普通div标记内的注释中。第二个部分是放置模板以供淘汰使用的位置。看起来如下所示:

<div id="template">
  <!--<span>test</span>-->
</div>
<template name="koTemplate">
    <div id="myTemplate">
        <span>Here is my template <a href="#">with children</a></span>
    </div>

    <script type="text/html" id="test"></script>
</template>
这将基本上获得模板的内容,删除模板,然后将其放入脚本标记中。结果如下所示:

<script type="text/html" id="test">
    <span>Here is my template <a href="#">with children</a></span>
</script>

这是我的模板

你的最终目标是什么?是否有一个模板可供另一个JS组件控制?我问b/c还有其他方法可以将模板从HTML传递到JS,而不必将其嵌入到脚本标记中。例如,看看这篇文章:我的最终目标是利用Cloud9 IDE功能编写HTML,以维护将由Knockout使用的模板。Knockout有一个使用方法,但它很麻烦,并且牺牲了在IDE中以HTML形式编写模板的优势。因为我已经在使用Meteor,所以我认为使用它“模板”会很好系统将普通HTML移动到脚本标记中,Cloud 9将正常中断,因为它“聪明”到足以知道脚本标记中的内容是Javascript。您是否考虑过前面提到的淘汰和使用Meteor满足您的绑定需求?我并不完全熟悉Meteor和Knockout的所有功能,但似乎它们在很多功能上都有重叠。@klamping是的。我在一个项目中使用了PureMeteor,但我不喜欢它的模板模型。使用knockout取代其主干样式的模板/控制器系统将非常适合我。我将在答案中发布一条建议,类似于我在第一条评论中所写的内容。它可能无法解决问题,但我想我会把它扔到那里。敲除要求模板位于脚本标记中。这是一种黑客行为,但您能否在执行敲除命令之前将模板写入新的脚本标记?可能。我将不得不深入研究Meteor如何存储模板。这将起作用,我现在可能会这样做,但它有点麻烦。这还意味着该部分将被模板更改,因为该代码处于被动上下文中。理想情况下,我想知道Meteor内部是什么让它在脚本标记中呈现注释的,而不是真正的模板。改变这一点将是非常干净的。Meteor文档在imo中仍然有点缺乏