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

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

How to get multiresult with multicondition in Sql Server -