Skip to content

"TypeError: Cannot read property 'apply' of undefined" when handlebars version > 4.6.0 #1639

Closed
@ivakarlec

Description

@ivakarlec

After the release of handlebars@4.6.0 (2nd week of January 2020) I get a "TypeError: Cannot read property 'apply' of undefined":
{code}
TypeError: Cannot read property 'apply' of undefined
at Object.wrapper (/myProject/node_modules/handlebars/lib/handlebars/internal/wrapHelper.js:5:19)
at Object.eval (eval at createFunctionContext (/myProject/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js:260:23), :13:196)
at main (/myProject/node_modules/handlebars/lib/handlebars/runtime.js:230:22)
at ret (/myProject/node_modules/handlebars/lib/handlebars/runtime.js:250:12)
at ret (/myProject/node_modules/handlebars/lib/handlebars/compiler/compiler.js:548:21)
at Object.invokePartial (/myProject/node_modules/handlebars/lib/handlebars/runtime.js:405:12)
at Object.invokePartialWrapper [as invokePartial] (/myProject/node_modules/handlebars/lib/handlebars/runtime.js:82:39)
at Object.eval (eval at createFunctionContext (/myProject/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js:260:23), :15:28)
at main (/myProject/node_modules/handlebars/lib/handlebars/runtime.js:230:22)
at ret (/myProject/node_modules/handlebars/lib/handlebars/runtime.js:250:12)
at ret (/myProject/node_modules/handlebars/lib/handlebars/compiler/compiler.js:548:21)
at ExpressHandlebars._renderTemplate (/myProject/node_modules/express-handlebars/lib/express-handlebars.js:250:12)
at ExpressHandlebars. (/myProject/node_modules/express-handlebars/lib/express-handlebars.js:173:21)
{code}
There are some breaking changes in the handlebars@4.6.0 release: 770d746

Activity

ivakarlec

ivakarlec commented on Jan 13, 2020

@ivakarlec
Author

Sorry, it's more likely an issue for express-handlebars...

nknapp

nknapp commented on Jan 13, 2020

@nknapp
Collaborator

Please add details.

The function in your stack trace is new. It may be a problem here.

reopened this on Jan 13, 2020
nknapp

nknapp commented on Jan 13, 2020

@nknapp
Collaborator

This issue should be fixed in Handlebars 4.7.2.

MatYRiCs

MatYRiCs commented on Jan 27, 2020

@MatYRiCs

This issue should be fixed in Handlebars 4.7.2.

It dosen't work for me with v. 4.7.2.

This is my helper file

module.exports = {
    truncate: function (str, num) {
        if (str.length <= num) {
            return str
        }
        return str.slice(0, num) + '...'
    }
};

And adding this to my app.js file:

const truncate = require('./helpers/hbs')

const hbs = exphbs.create({
    helpers: truncate
});

And this is how I use the function in my handlebars file:

            <tbody>
                {{#each systems}}
                <tr>
                    <td class="text-center">{{#each this}} {{ truncate name 10 }} {{/each}} </td>
                    <td class="text-center">{{#each this}} {{table}} {{/each}}</td>
                    <td class="text-center">
                        <button type="button" class="ikon ikon-rundt ikon-rediger" title="Rediger"></button>
                        <button type="button" class="ikon ikon-rundt ikon-slet" title="Slet"></button>
                    </td>
                </tr
...

I keep getting:
TypeError: Cannot read property 'length' of undefined

nknapp

nknapp commented on Jan 27, 2020

@nknapp
Collaborator

It's a different problem (differen error message). Please have a look if it is related to #1642
Otherwise open a new issue, please also provide the template-input there (i.e. the parameter to "res.render(...")

2 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @nknapp@ivakarlec@MatYRiCs

        Issue actions

          "TypeError: Cannot read property 'apply' of undefined" when handlebars version > 4.6.0 · Issue #1639 · handlebars-lang/handlebars.js