我正在构建一个非常简单的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预编译错误但找不到任何东西。有人有什么想法吗?
答案 0 :(得分:3)
如评论中所述,删除Handlebars表达式中的空格将有助于:
<div id="container">
<h1>My App</h1>
{{view Ember.TextField valueBinding="newEntryName" action="addEntry"}}
{{#each array}}
<li></li>
{{/each }}
</div>
在我看来,异常就好像预编译器没想到那个位置有空格: - )