2013-02-23 84 views
1

如何處理錯誤:類型錯誤:編譯不是一個函數

類型錯誤:編譯不是一個函數
模板=編譯(script.html());

in ember-1.0.0-rc.1.js?

所包含的框架是:

的jquery-1.9.1.js

handlebars.1.0.0-rc.3.js

餘燼-1.0.0-rc.1.js

+0

號粗體文本爲1:1從螢火蟲輸出複製。但我認爲你是對的,執行Handlebars.compile(...)。目前,我試圖按照詹姆斯的建議。 Ember.Handlebars.compile(...)。不幸的是,直到現在沒有成功。 – Daniel 2013-02-25 10:44:40

回答

3

只有Ember 需要 Handlebars運行時(可從http://handlebarsjs.comhandlebars.runtime.js獲得)。如果您想在瀏覽器中進行模板編譯(與預編譯所有模板並將生成的JavaScript發送到瀏覽器相反),則需要在頁面上包含完整的Handlebars,並將compile更改爲Ember.Handlebars.compile。 (Ember.Handlebars.compile包裝在一些特定的灰燼魔Handlebars.compile。)

例如,

<script src="/assets/jquery-1.9.js"></script> 
<script src="/assets/handlebars-1.0.0-rc.3.js"></script> 
<script src="/assets/ember-1.0.0-rc.1.js"></script> 

MyView = Ember.View.extend({ 
    template: Ember.Handlebars.compile("{{foo}} {{bar}}"), 
}); 
+0

我做了你提出的建議之後,類似的錯誤上下文。 「TypeError:Ember.Handlebars.compile不是函數」。您能否建議一個通用教程,熟悉最新版本以及如何解決這個問題?^Thx〜 – Daniel 2013-02-26 14:25:55

+0

當且僅當定義了「Handlebars.compile」時,'Ember.Handlebars.compile'才被定義。這是定義如果你有完整的Handlebars(不只是運行時)。你確定*你有正確的Handlebars版本嗎? – 2013-02-26 19:52:02

+0

^Thx〜詹姆斯,就是這樣。不幸的是我在複製過程中混淆了。運行時間源是完整的。爲什麼,我不知道。我提前幾次檢查過。 – Daniel 2013-02-27 10:46:12

相關問題