首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让Ember模板与Rails协同工作?错误: HTMLBars模板中不允许使用`SCRIPT`标签

如何让Ember模板与Rails协同工作?错误: HTMLBars模板中不允许使用`SCRIPT`标签
EN

Stack Overflow用户
提问于 2016-02-20 17:30:56
回答 1查看 380关注 0票数 0

我正在尝试Ember for Rails,通过这个视频创建一个搜索页面:https://www.youtube.com/watch?v=Brn_2bbr0fE

我使用这个铁路广播设置Ember:https://www.youtube.com/watch?v=NRWMsMTY8rw

但是,我得到一个错误:

代码语言:javascript
运行
复制
Compiler said: Error: `SCRIPT` tags are not allowed in HTMLBars templates

我的application.handlebars是:

代码语言:javascript
运行
复制
<div id="container">
<h1>App</h1>

{{render "autocomplete"}}

<script type="text/x-handlebars" data-template-name="autocomplete">
    {{input value=searchText placeholder="Search.."}}
    <ul>
        {{#each searchResuls}}
        <li>{{this}}</li>
        {{/each}}
    </ul>
</script>

我不知道Ember模板是怎么工作的。一些演示有.html、.handlebars、.hbs。如何分隔data-template-name="autocomplete"?我试着把它放在帮手上,但它不起作用

EN

回答 1

Stack Overflow用户

发布于 2016-02-21 03:03:46

在Ember中,主要有两种方式来声明模板:

使用单独的模板文件的

  1. 。该文件可能具有.handlebars.hbs扩展名(如您所提到的)。当你这样做的时候,它被称为预编译你的模板。(如果您使用的是Ember CLI,这大部分都是为您处理的。如果您不使用Ember CLI,则必须自己设置此过程。)预编译模板时,不需要在script标记中声明它们。
  2. 使用script标记并将type属性设置为text/x-handlebars。使用此方法,您的模板将在用户的浏览器中编译为Javascript。在大多数版本中,Ember会自动检测这些模板,并将它们放在需要的地方。如果你使用这种方法,你的模板script标签必须在你的主文件中(可能是index.html).

您目前拥有的是这两种方法的组合。因为您有一个application.handlebars文件,所以必须设置预编译器。您将希望继续使用方法1。为此,只需获取script标记的内容并将其放入autocomplete.handlebars文件中。

代码语言:javascript
运行
复制
<!-- application.handlebars -->

<div id="container">
<h1>App</h1>

{{render "autocomplete"}}

&

代码语言:javascript
运行
复制
<!-- autocomplete.handlebars -->

{{input value=searchText placeholder="Search.."}}
<ul>
    {{#each searchResuls}}
    <li>{{this}}</li>
    {{/each}}
</ul>

这将解决您的问题,Ember将正确检测您的自动完成模板。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35521387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档