在教程 (v2) 中使用的 stache 文件的 XML 解析错误



我目前正在声明要通过v2教程学习CanJS。

的 索引.html 由以下行组成

<!-- CanJS application root -->
<div id="can-main"></div>
<script src="libs/jquery-3.1.1.js"></script>
<script src="libs/can.jquery.dev.js"></script>
<script src="libs/can.map.define.js"></script>
<script src="libs/can.stache.js"></script>
<script src="libs/can.fixture.js"></script>
<script src="app.js"></script>
<script src="components/tut-form/base.js"></script>

app.js没有什么特别的. 组件 JavaScript 文件 (base.js) 看起来像这样

can.Component.extend({
tag: 'tutorial-form',
template: can.view('components/tut-form/base.stache'),
viewModel: {
hello: 'Hello Input Component'
}
});

我添加了标签<tutorial-form></tutorial-form>作为索引<body>的最后一行.html。

现在至少FF给出了以下错误

XML 分析错误:文档元素之后的垃圾 位置: file:///path/to/tutorial/components/tut-form/base.stache 第 2 行,第 1 列:

虽然这个文件看起来像这样

<h3>Hello</h3>
<h3>{{hello}}</h3>

好吧,我想,我只是缺少一个CanJS组件(我使用的是CanJS.zip中的文件,因为自定义下载页面已损坏或看起来根本不像教程中描述的那样),例如can.Componentcan.view。浏览器可以加载 .stache 文件,但我不确定幕后会发生什么。

有人暗示我在这里做错了什么吗?

静态文件服务器是我解决这个问题的方法。不要file://加载所有文件,这可能在 FF 中也不起作用(在 Chrome 中,您会收到不允许本地文件类消息的跨域请求)。

我刚刚配置了一个 NGINX 以便为这个小项目提供文件,现在它运行良好。

旁注:在这种情况下,将自定义标记(如<tutorial-form/>)添加到索引.html不起作用。相反,您需要附加此元素(一个可以。组件)到正文,如下所示:

$( 'body' ).append( can.stache( '<tutorial-form />' )() );

最新更新