首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HandlebarsHelper编译模板tempateSpec.call未定义

HandlebarsHelper编译模板tempateSpec.call未定义
EN

Stack Overflow用户
提问于 2014-11-07 19:08:45
回答 2查看 748关注 0票数 3

我在一个HandlebarsHelper站点上的MVC5编译模板上有一个问题。下面是BundleConfig的代码:

代码语言:javascript
复制
bundles.Add(new Bundle("~/bundles/templates", new HandlebarsTransformer())
            .IncludeDirectory("~/App/templates", "*.hbs", true));

这个程序在本地运行得很好,然后我推到了一个承载QA环境的服务器上,我收到了一个程序集引用错误,说HandlebarsHelper插件调用了侏罗纪2.1.0.0,但是没有找到它。所以我加入了侏罗纪通过Nuget,从那时起模板停止工作。我从浏览器中得到了这个错误:

Chrome:未定义的TypeError:未定义不是函数

火狐: TypeError: templateSpec.call不是一个函数

这发生在handlebars.js的以下部分:

代码语言:javascript
复制
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

整个上午我都在网上搜索,还没有找到任何有效的答案,我试着删除侏罗纪Nuget包,但没有帮助。任何想法都将不胜感激,请告诉我,如果有任何其他信息,将有助于诊断的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-08 16:37:50

您所处的HandlbarsHelper版本不支持该版本的Ember.js。

1.9版发生了重大变化,增加了对车把2.0版的支持。这在HandlebarsHelper v2.0+中是支持的。这意味着2.0+不能与Ember.JS < v1.9和车把< v2.0一起使用。

它最初起作用的原因可能是因为在调试中,模板通常只被注入到页面中。

简单的修复方法是使用HandlebarsHelper v1.1 (https://www.nuget.org/packages/HandlebarsHelper/1.1.0)

票数 0
EN

Stack Overflow用户

发布于 2014-12-11 15:58:33

问题是,我使用的是一个版本的扶手,它只支持工具栏2.x。在Nuget中找到问题,并将其更改为不同的版本,现在一切都正常了。谢谢你的评论。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26808341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档