我使用的marionette
在我的应用程序。 我显示ItemView
通过regions
如以下。
var productInfoViewObj=new productInfoView.ProductInfoView({model:tagInformationModel.tagInformationModelObj});
exports.MyApp.bodyContainer.show(productInfoViewObj);
这是代码,我里面写view
。
exports.ProductInfoView=Backbone.Marionette.ItemView.extend({
domInfo:{
mainTemplateId:"tagProductListTpl",
tableTemplateId:"taginfoViewTpl",
tableContentDiv:"taginfoViewDiv",
//tad Info
tagInfoTabId:"tagInfoBtn",
productInfoTabId:"productInfoBtn"
},
template:function(){
return commonFunctions.templateCompilation("tagProductListTpl","");
},
onRender:function(){
console.log(document.getElementById("productInfoBtn"));
}
});
我传递templateId and data
作为参数传递给commonFunctions.templateCompilation
。 这将编译并返回compiled string
。 这编译结果传递给template
。
按我的设想,完成后template
, onRender
功能将被触发。 我之前的意思onRender
,DOM将可无论我们使用的是模板化template
。
但是我得到null
内onRender
功能。
我希望有一个回调,它应该触发后, template
在DOM可用。 所以我可以访问任何我使用模板元素template
。
我可以做一件事情,无论我里面写onRender
,我可以设置time
就像下面的方式。
onRender:function(){
setTimeout(function(){console.log(document.getElementById("productInfoBtn"));},1000);
}
如果我设置time
,工作正常,但它不是实行正确的方法。
谁能帮我。
谢谢。