2014-11-07 5 views
3

У меня возникла проблема с скомпилированными шаблонами HandlebarsHelper на сайте MVC5. Вот код для BundleConfig:HandlebarsHelper скомпилированные шаблоны tempateSpec.call undefined

bundles.Add(new Bundle("~/bundles/templates", new HandlebarsTransformer()) 
      .IncludeDirectory("~/App/templates", "*.hbs", true)); 

Это работает нормально локально, а затем я нажал на сервер хостинга среды QA, и я получаю ссылку на сборку ошибку говоря плагину HandlebarsHelper звала юрский 2.1.0.0 и он не был найден. Поэтому я добавил юрассию через Nuget, с тех пор шаблоны перестали работать. Я получаю эту ошибку в браузере:

Chrome: Uncaught TypeError: не определено не является функцией

Firefox: TypeError: templateSpec.call не является функцией

Это происходит в следующем разделе из handlebars.js:

return function(context, options) { 
    options = options || {}; 
    var namespace = options.partial ? options : env, 
     helpers, 
     partials; 

    if (!options.partial) { 
    helpers = options.helpers; 
    partials = options.partials; 
    } 
    var result = templateSpec.call(
     container, 
     namespace, context, 
     helpers, 
     partials, 
     options.data); 

    if (!options.partial) { 
    env.VM.checkRevision(container.compilerInfo); 
    } 

    return result; 
}; 

Я бегу:

Ember 1. 7,0 Ember-Data 1.0.0-beta.11 Рули 1.3.0 JQuery 2.1.1

MVC 5 .Net 4.5.2

Я искал в Интернете все утро и не нашли ответы все же, что сработало, я попытался удалить пакет Jurassic Nuget, и это не помогло. Любые идеи будут оценены, дайте мне знать, есть ли какая-либо другая информация, которая поможет диагностировать проблему.

+0

Какую версию руля вы используете? – Kingpin2k

+0

И можете ли вы включить, как вы вводите его на свою страницу? – Kingpin2k

+0

И есть BundleTable.EnableOptimizations = true; – Kingpin2k

ответ

0

Вы используете версию HandlbarsHelper, которая не поддерживается для этой версии Ember.js.

В версии 1.9 было внесено изменение, добавив поддержку рулей версии 2.0. Это поддерживается в HandlebarsHelper v2.0 +. Поскольку изменение разлома означает, что 2.0+ не может использоваться с Ember.JS < v1.9 и ручками < v2.0.

Причина, по которой она, вероятно, работала изначально, заключалась в том, что в шаблонах отладки обычно просто вводятся в страницу unminified.

Easy починка использовать HandlebarsHelper v1.1 (https://www.nuget.org/packages/HandlebarsHelper/1.1.0)

0

Проблема я использовал версию Рули Helper, что поддерживается только рули 2.x. Найденный вопрос в Nuget и изменил его на другую версию, все работает сейчас. Спасибо за комментарии.