2013-02-23 2 views
1

Как обрабатывать ошибки:TypeError: компилировать не является функцией

TypeError: компиляция не является функцией
шаблон = компилировать (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

No. Выделенная текст 1: 1 копируется из выходного сигнала Firebug. Но я думаю, что вы правы, исполнен Handlebars.compile (...). На данный момент я стараюсь следовать тому, что предложил Джеймс. Ember.Handlebars.compile (...). К сожалению, до сих пор без успеха. – Daniel

ответ

3

Только Ember требует Ручная работа (доступна как handlebars.runtime.js от http://handlebarsjs.com). Если вы хотите сделать компиляцию шаблонов в браузере (в отличие от предварительной компиляции всех шаблонов и доставки полученного JavaScript в браузер), вам нужно будет включить полные Ручные ссылки на странице и изменить 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

+0

'Ember.Handlebars.compile' определяется тогда и только тогда, когда определен' Handlebars.compile'. Это определено, если у вас есть полные дескрипторы (а не только время выполнения). Вы уверены, что у вас есть правильная версия Handlebars? –

+0

^Thx ~ Джеймс, вот и все. К сожалению, я перепутал процесс копирования. Источник времени исполнения был в полном объеме. Почему, я не знаю. Я проверил это несколько раз заранее. – Daniel

Смежные вопросы