Is it possible to assign a parameter value within handlebars templates without using helpers?

I needed this solution solved in the same way the original poster expected. Therefore I created a helper function to do this for me.

function setVariable(varName, varValue, options){
  options.data.root[varName] = varValue;
};

Contained within the options in the helper, is the data block, with the root of the helper variables.

I placed my variable within the root object, either assigning or overwriting with the value provided.

The helper in html looks a lot like this.

{{setVariable "thisVar" "Contents Here"}}

<div>
  {{thisVar}}
</div>

You can do this with a partial.

partial:

<div class="{{classname}}">{{var1.author}}</div>

template:

{{#if author}}
{{> mypartial var1=. classname="classA"}}
{{else}}
{{> mypartial var1=. classname="classB"}}
{{/if}}

In this example I've passed the current scope as var1. I can't recall if the scope stays the same and the new variable is just added to it or if you have to pass the scope manually.


Small update from a helpful above answer. In Handlebars 4.x, it seems we have to get the variables from @root.

handlebars.registerHelper('assign', function (varName, varValue, options) {
    if (!options.data.root) {
        options.data.root = {};
    }
    options.data.root[varName] = varValue;
});

And then,

{{assign 'imageTag' 'drop-155'}}

{{@root.imageTag}}