Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不同块中的实际节开始和结束标记_Javascript_Ractivejs - Fatal编程技术网

Javascript 不同块中的实际节开始和结束标记

Javascript 不同块中的实际节开始和结束标记,javascript,ractivejs,Javascript,Ractivejs,我们有在CKEditor中创建的RactiveJS模板,它输出 <p>Can you see it?</p> <p>{{# visible }}</p> <p>Now you see me</p> <p>{{/ visible }}</p> 这在Ractive v0.4中使用,但在最新版本中会出现解析错误 在不同的HTML块中有一个节的开始和结束标记似乎不再有效 有没有什么方法可以解决这个问题,而不

我们有在CKEditor中创建的RactiveJS模板,它输出

<p>Can you see it?</p>
<p>{{# visible }}</p>
<p>Now you see me</p>
<p>{{/ visible }}</p>
这在Ractive v0.4中使用,但在最新版本中会出现解析错误

在不同的HTML块中有一个节的开始和结束标记似乎不再有效

有没有什么方法可以解决这个问题,而不必更改模板

v0.4中的工程: 在v0.8中不起作用: 更新以澄清问题:

这是在v0.4.x中运行的。是什么改变导致它不再工作?你能指出源代码中的行吗? 我可以使用哪些替代库来完成预期的解析mustach并具有双向绑定。
在不改变模板的情况下,没有办法解决这个问题。在过去的几个版本中,解析器变得更加严格了,因为像这样令人困惑的场景并没有产生它看起来的结构。在这种情况下,您会得到一些额外的嵌套p标记,这并不是特别有害,但在其他情况下却是有害的。因此,在0.4中,您实际拥有的是:

<p>Can you see it?</p>
<p>
  {{# visible }}
    <p></p>
    <p>Now you see me</p>
    <p></p>
  {{/ visible }}
</p>

Ractive 0.8,我认为是0.5+,但肯定是0.7+,直到块打开后的

,它看到未打开元素的结束标记并抛出错误。Ractive从未支持跨越标记的块,因为在VDOM中无法表示这些块,VDOM是一种严格的树结构。

在不更改模板的情况下,没有真正的解决方法。在过去的几个版本中,解析器变得更加严格了,因为像这样令人困惑的场景并没有产生它看起来的结构。在这种情况下,您会得到一些额外的嵌套p标记,这并不是特别有害,但在其他情况下却是有害的。因此,在0.4中,您实际拥有的是:

<p>Can you see it?</p>
<p>
  {{# visible }}
    <p></p>
    <p>Now you see me</p>
    <p></p>
  {{/ visible }}
</p>
<p>Can you see it?</p>
<p>{{# visible }}</p>
<p>Now you see me</p>
<p>{{/ visible }}</p>
Ractive 0.8,我认为是0.5+,但肯定是0.7+,直到块打开后的

,它看到未打开元素的结束标记并抛出错误。Ractive从来都不支持跨越标记的块,因为在VDOM(一种严格的树结构)中无法表示这些块

<p>Can you see it?</p>
<p>{{# visible }}</p>
<p>Now you see me</p>
<p>{{/ visible }}</p>
我强烈建议首先检查所见即所得配置,并让编辑器编辑和保存纯文本。然后重做以这种方式输入的任何数据。从抽象的角度看,没有办法解决这个问题,因为从本质上讲,标记是一个格式错误的模板。0.4只是不够严格,无法捕捉到这一点

还值得注意的是,Ractive将模板表示为一棵树。尽管使用了类似于mustache的模板语法,但它并不像实际的mustache库那样进行字符串插值/串联

我强烈建议首先检查所见即所得配置,并让编辑器编辑和保存纯文本。然后重做以这种方式输入的任何数据。从抽象的角度看,没有办法解决这个问题,因为从本质上讲,标记是一个格式错误的模板。0.4只是不够严格,无法捕捉到这一点


还值得注意的是,Ractive将模板表示为一棵树。尽管使用了类似于小胡子的模板语法,但它并不像实际的小胡子库那样进行字符串插值/串联。

模板是给定的。认为它们是不可改变的。将它们保存为纯文本尤其不可取。我的问题是如何配置或修改Ractive来处理它们。我已经更新了我的问题。@Jasny ArnoldDaniels鉴于解析器变得更加严格,而且模板从一开始就无效,您唯一的选择是保持在0.4,这仍然允许。模板是给定的。认为它们是不可改变的。将它们保存为纯文本尤其不可取。我的问题是如何配置或修改Ractive来处理它们。我已经更新了我的问题。@Jasny ArnoldDaniels鉴于解析器变得更加严格,而且模板从一开始就无效,您唯一的选择是保持在0.4,这仍然允许。使其停止工作的更改或多或少是检查无效模板。我也不知道有任何其他的VDOM mustache库可以使用它。如果你想使用自己的Ractive来支持它,我认为您可以在这里添加一些代码,以静默方式吃掉意外的结束标记,并返回一个空模板元素,该元素将在清理阶段或解析期间被删除。使其停止工作的更改或多或少是对无效模板的检查。我也不知道有任何其他VDOM mustache库可以使用此功能。如果您想使用自己的Ractive来支持此功能,我认为您可以在此处添加一些代码,以静默方式吃掉意外的结束标记,并返回一个空模板元素,该元素将在清理阶段或解析期间删除。