1

如果我在 index.html 中添加以下代码,那么它工作正常,但我想在外部文件中定义,然后我想用can.view.

<script type="text/mustache" id="todosList">
     {{#todos}}
          <li>{{description}}</li>
     {{/todos}}
</script>

如果我创建单独的 html 文件,如何从中加载模板?

4

2 回答 2

1

can.view可以直接从 URL 加载模板。从 can.view 文档

从 url 加载模板

要从 url 加载,只需将模板的位置传递给 can.view。模板的位置需要一个与模板类型相匹配的扩展名:

document.getElementById('recipes')   
      .appendChild(can.view('templates/recipes.ejs', recipeData ) ) 

注意:如果您使用的是 RequireJS,则 URL 将相对于它的 baseUrl。

在你的情况下,如果你命名你的文件todos.mustache并且它在templates目录中,它看起来像这样:

document.getElementById('todos')   
      .appendChild(can.view('todos.mustache', recipeData ) )
于 2014-09-22T20:37:00.500 回答
0
$('target-element').html(can.view('todosList', todolist-data))

这是在 canJS 中加载外部模板的语法。

于 2014-09-22T10:42:10.207 回答