knockoutjs 1.3PRE“此模板引擎不支持嵌套在其模板中的匿名模板”

发布于 2024-12-18 03:53:14 字数 156 浏览 0 评论 0原文

我在使用新的匿名模板引擎时遇到问题。它不能使用嵌套模板。我收到错误:“此模板引擎不支持嵌套在其模板中的匿名模板”。

我的问题:如何强制 knockoutJS 使用 jquery 模板引擎而不是新的。 (当然它也支持嵌套模板)

谢谢您

最诚挚的问候 扬

I am having a problem with the new anonymous template engine. It cannot use nested templates. I get the error: "This template engine does not support anonymous templates nested within its templates".

My question: how do I force knockoutJS to use the jquery templates engine and not the new one. (until it also supports nested templates off course)

Thank you

Kindest regards
Jan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

痴者 2024-12-25 03:53:14

有几件事应该有助于解决这个问题:

  • 如果您在 Knockout.js 之前引用 jquery.tmpl.js,那么 KO 会将 jQueryTmplTemplateEngine 设置为默认值。
  • jQueryTmplTemplateEngine 不支持匿名模板。这意味着您无法使用 foreachififnotwith 等控制流绑定在其中。您仍然可以使用模板绑定(包括嵌套模板)。
  • 您可以通过调用ko.setTemplateEngine()来控制默认模板引擎。您可以传递要使用的引擎实例,例如 ko.setTemplateEngine(new ko.nativeTemplateEngine)
  • 您还可以将模板引擎传递给 templateEngine 中的模板绑定> 参数。

因此,对于您的情况,您可能希望删除对 j​​query.tmpl.js 的引用,以便默认使用本机模板引擎。本机模板引擎确实支持嵌套模板(匿名或命名)。

使用本机模板引擎显示其中包含匿名模板的命名模板的快速示例: http://jsfiddle.net/ rniemeyer/GXFYB/

A couple things that should help clear this up:

  • If you reference jquery.tmpl.js before Knockout.js, then KO will set the jQueryTmplTemplateEngine as the default.
  • The jQueryTmplTemplateEngine does not support anonymous templates. This means that you can't use the control-flow bindings like foreach, if, ifnot, and with within it. You can still use the template binding (including nested templates).
  • You can control the default template engine by calling ko.setTemplateEngine(). You would pass an instance of the engine that you want to use like ko.setTemplateEngine(new ko.nativeTemplateEngine)
  • You can also pass the template engine to the template binding in the templateEngine parameter.

So, for your case, you would likely want to remove the reference to jquery.tmpl.js, so that the native template engine is being used by default. The native template engine does support nested templates (anonymous or named).

Quick sample showing a named template with anonymous templates inside of it using the native template engine: http://jsfiddle.net/rniemeyer/GXFYB/

聚集的泪 2024-12-25 03:53:14

当我删除 tmpl js 库的包含内容时遇到了这个问题,但重新添加它解决了问题。您确定已包含 jquery.tmpl.js 库吗?

<script src='..<some path>../jquery.tmpl.js")' type="text/javascript"></script>

另外,我首先包含 tmpl 库,然后包含淘汰库。也许这是一个因素?

I got this problem when I removed the include to the tmpl js library but re-adding it fixed the problem. Are you sure you have included the jquery.tmpl.js library?

<script src='..<some path>../jquery.tmpl.js")' type="text/javascript"></script>

Also, I include the tmpl library first and the knockout library second. Maybe this is a factor?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文