3

我正在构建一个非常简单的 Ember-Rails 示例应用程序,但遇到了一个奇怪的预编译器错误。这就是应用程序的基本原理。

这是 application_controller.js.coffee:

Hitch.ApplicationController = Ember.Controller.extend
    entries: ['asdfasf' , 'asfasdf']

    addEntry: ->
        @entries.pushObject name: @get('newEntryName')
        @set('newEntryName', "")

这是 application.handlebars 文件:

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

    {{ view Ember.TextField valueBinding="newEntryName" action="addEntry"}}
    {{ #each array}}
        <li></li>
    {{ /each }}
</div>

当我尝试加载页面时遇到一个非常奇怪的错误:

Pre compilation failed for: <div id="container">
    <h1>My App</h1>
    {{ view Ember.TextField valueBinding="newEntryName" action="addEntry"}}
    {{ #each array}}
        <li></li>
    {{ /each }}

</div>

. Compiler said: Error: Parse error on line 4:
...on="addEntry"}}  {{ #each array}}        <li>
----------------------^
Expecting 'ID', 'DATA', got 'INVALID'
  (in /Users/danshipper/code/hitch/app/assets/javascripts/templates/application.handlebars)

我不知道如何开始调试它,因为我对 Ember 很陌生。我查看了 Barber 文档,因为它说这是 Barber 预编译器错误,但找不到任何东西。有人有什么想法吗?

4

1 回答 1

3

如评论中所述,删除 Handlebars 表达式中的空格将有助于:

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

    {{view Ember.TextField valueBinding="newEntryName" action="addEntry"}}
    {{#each array}}
        <li></li>
    {{/each }}
</div>

在我看来,这个例外好像预编译器不希望在那个位置有一个空格:-)

于 2013-07-31T21:11:28.097 回答