admin管理员组

文章数量:1024629

I prepiled my handlebars template like this:

 handlebars tabs.hbs -f tabs.js

I load them like this:

 <script type="text/javascript" src="js/handlebars.runtime.min.js"></script>
 <script type="text/javascript" src="js/templates/tabs.js"></script>
 <script type="text/javascript" src="js/tabsData.js"></script>

This is how I provide the context to the prepiled template:

var template=Handlebars.templates["tabs.hbs"];
var html=template(tabsData);
console.log(html)
sidebar.setContent(html);

I get this error:

Uncaught TypeError: undefined is not a function    handlebars.runtime.js 436
 /*Error points here*/
 var result = templateSpec.call(
        container,
        namespace, context,
        helpers,
        partials,
        options.data);

This is template:

  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(containerpilerInfo);
  }

  return result;
} 

I prepiled my handlebars template like this:

 handlebars tabs.hbs -f tabs.js

I load them like this:

 <script type="text/javascript" src="js/handlebars.runtime.min.js"></script>
 <script type="text/javascript" src="js/templates/tabs.js"></script>
 <script type="text/javascript" src="js/tabsData.js"></script>

This is how I provide the context to the prepiled template:

var template=Handlebars.templates["tabs.hbs"];
var html=template(tabsData);
console.log(html)
sidebar.setContent(html);

I get this error:

Uncaught TypeError: undefined is not a function    handlebars.runtime.js 436
 /*Error points here*/
 var result = templateSpec.call(
        container,
        namespace, context,
        helpers,
        partials,
        options.data);

This is template:

  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.pilerInfo);
  }

  return result;
} 
Share Improve this question edited Jul 9, 2014 at 14:30 vamsiampolu asked Jul 8, 2014 at 17:45 vamsiampoluvamsiampolu 6,70420 gold badges90 silver badges194 bronze badges 5
  • you'll need to figure out which item is undefined. – Mike Cheel Commented Jul 8, 2014 at 17:54
  • @MikeCheel Calling template(tabsData) throws this error,I trying using the same context and piling it on tryhandlebarsjs. where it works. – vamsiampolu Commented Jul 9, 2014 at 4:54
  • What do u get for console.log(template) – blessanm86 Commented Jul 9, 2014 at 12:49
  • @blessenm Added the template code... – vamsiampolu Commented Jul 9, 2014 at 14:31
  • I think Handlebars.templates["tabs.hbs"] is returning undefined. Check if Handlebars.templates has ur template and if the key 'tabs.hbs' si correct. – blessanm86 Commented Jul 9, 2014 at 15:01
Add a ment  | 

1 Answer 1

Reset to default 4

As biomorgoth mented here: https://stackoverflow./a/22214119

Make sure your npm version corresponds to the client version. Client version is in the the top of the js file and you find npm version with:

npm list -g | grep handlebars

installing the 1.3.0 version with npm solved the issue for me.

sudo npm install -g [email protected]

I prepiled my handlebars template like this:

 handlebars tabs.hbs -f tabs.js

I load them like this:

 <script type="text/javascript" src="js/handlebars.runtime.min.js"></script>
 <script type="text/javascript" src="js/templates/tabs.js"></script>
 <script type="text/javascript" src="js/tabsData.js"></script>

This is how I provide the context to the prepiled template:

var template=Handlebars.templates["tabs.hbs"];
var html=template(tabsData);
console.log(html)
sidebar.setContent(html);

I get this error:

Uncaught TypeError: undefined is not a function    handlebars.runtime.js 436
 /*Error points here*/
 var result = templateSpec.call(
        container,
        namespace, context,
        helpers,
        partials,
        options.data);

This is template:

  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(containerpilerInfo);
  }

  return result;
} 

I prepiled my handlebars template like this:

 handlebars tabs.hbs -f tabs.js

I load them like this:

 <script type="text/javascript" src="js/handlebars.runtime.min.js"></script>
 <script type="text/javascript" src="js/templates/tabs.js"></script>
 <script type="text/javascript" src="js/tabsData.js"></script>

This is how I provide the context to the prepiled template:

var template=Handlebars.templates["tabs.hbs"];
var html=template(tabsData);
console.log(html)
sidebar.setContent(html);

I get this error:

Uncaught TypeError: undefined is not a function    handlebars.runtime.js 436
 /*Error points here*/
 var result = templateSpec.call(
        container,
        namespace, context,
        helpers,
        partials,
        options.data);

This is template:

  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.pilerInfo);
  }

  return result;
} 
Share Improve this question edited Jul 9, 2014 at 14:30 vamsiampolu asked Jul 8, 2014 at 17:45 vamsiampoluvamsiampolu 6,70420 gold badges90 silver badges194 bronze badges 5
  • you'll need to figure out which item is undefined. – Mike Cheel Commented Jul 8, 2014 at 17:54
  • @MikeCheel Calling template(tabsData) throws this error,I trying using the same context and piling it on tryhandlebarsjs. where it works. – vamsiampolu Commented Jul 9, 2014 at 4:54
  • What do u get for console.log(template) – blessanm86 Commented Jul 9, 2014 at 12:49
  • @blessenm Added the template code... – vamsiampolu Commented Jul 9, 2014 at 14:31
  • I think Handlebars.templates["tabs.hbs"] is returning undefined. Check if Handlebars.templates has ur template and if the key 'tabs.hbs' si correct. – blessanm86 Commented Jul 9, 2014 at 15:01
Add a ment  | 

1 Answer 1

Reset to default 4

As biomorgoth mented here: https://stackoverflow./a/22214119

Make sure your npm version corresponds to the client version. Client version is in the the top of the js file and you find npm version with:

npm list -g | grep handlebars

installing the 1.3.0 version with npm solved the issue for me.

sudo npm install -g [email protected]

本文标签: javascriptPrecompiled handlebars template not workingStack Overflow