奇怪的EmberJS预编译错误:期待' ID','数据',得到'无效'

时间:2013-07-31 20:57:45

标签: ruby-on-rails ember.js ember-rails

我正在构建一个非常简单的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预编译错误但找不到任何东西。有人有什么想法吗?

1 个答案:

答案 0 :(得分:3)

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

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

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

在我看来,异常就好像预编译器没想到那个位置有空格: - )