handlebars.js - Running JavaScript inside a Handlebars Template -
i want execute bit of javascript code inside handlebars template. typically in application this
<script type="text/javascript"> var @model.javascriptvariablename; $(function () { @model.javascriptvariablename = new taginput() .withavailabletags(@html.raw(model.availabletagsjson)) .withappliedtags(@html.raw(model.appliedtagsjson)) .withmincharsautocomplete(@model.mincharsautocomplete) .allowbackspacedelete(@model.deletewithbackspace.tostring().tolowerinvariant()) .allownewtags(@model.allownewtags.tostring().tolowerinvariant()) .initialize($('#@model.elementid'), $('#@(model.elementid)_hidden')); @if(model.onchangejavascript.isnotnullorempty()) { @:@(model.javascriptvariablename).onchange = function () { @html.raw(model.onchangejavascript) } } }); </script> but since inside of handlebars template tried insert $(function(){}) gets spit out text makes sense. how can create bit of dynamic javascript inside of handlebars???
<script type="text/x-handlebars-template" id="tagstemplate"> <div>tags</div> var @model.javascriptvariablename; $(function () { @model.javascriptvariablename = new taginput() .withavailabletags(@html.raw(model.availabletagsjson)) .withappliedtags(@html.raw(model.appliedtagsjson)) .withmincharsautocomplete(@model.mincharsautocomplete) .allowbackspacedelete(@model.deletewithbackspace.tostring().tolowerinvariant()) .allownewtags(@model.allownewtags.tostring().tolowerinvariant()) .initialize($('#@model.elementid'), $('#@(model.elementid)_hidden')); @if (model.onchangejavascript.isnotnullorempty()) { @:@(model.javascriptvariablename).onchange = function () { @html.raw(model.onchangejavascript) } } }); </script> the above code wont work.
unless using handlebar compile webpage server side don't see why need wait every time window ready event: $(function(){}) in fact wrap function make sure fire when dom ready (has been loaded). can skip part in code if want.
i discourage put js code in template: why don't generalize code , compile handlebars dom stuff ids or classes can use in "generic" function instead?
Comments
Post a Comment