meteor blaze rendered being called before DOM completion -
i have template shows qrcode user id :
<template name="pairdevice"> {{#with currentuser}} <div id="qrcode"></div> <div class="key" id="qrcodevalue" style="display: none;">{{id}}</div> {{/with}} </template>
i tried setting value rendered , helper, it's same problem $('#qrcode')
, $('#qrcodevalue')
return []
fields don't exist yet.
template.pairdevice.rendered = function(){ if (!location.origin) { location.origin = location.protocol+"//"+location.host; } // $('#qrcode').qrcode({width : 128, height :128 ,text : $('#qrcodevalue').html()}); }; template.pairdevice.helpers({ 'id' : function(){ var appuser =meteor.user(); var value = location.origin + ";" + appuser._id + ";" + appuser.emails[0].address; $('#qrcode').qrcode({width : 128, height :128 ,text : value}); return value; } });
i know blaze renders once, how can render after dom completion?
thanks
move {{#with currentuser}}
outside of template.
<template name="pairdevice"> <div id="qrcode"></div> <div class="key" id="qrcodevalue" style="display: none;">{{id}}</div> </template> <!-- call --> {{#with currentuser}} {{> pairdevice}} {{/with}}
when first refresh page, believe currentuser
undefined short time while client authenticates resume token. when pairdevice
first rendered, currentuser
undefined 2 divs #qrcode
, #qrcodevalue
not there when rendered
callback called. moving outside of template, pairdevice
template not rendered @ until currentuser
defined.
Comments
Post a Comment