我一直在努力实现这个实现,所以我想我会在Stack Overflow上给出一个很好的社区来解决我的问题。
所以我得到了一份标准的个人信息表。表单ID是“个人形式”。 我从模板中有一个名为{{numFormsCompleted}}的辅助方法。
这是我对方法的实现 -
numFormsCompleted : function(){
var count = 0;
var form = document.getElementById("quote-form");
console.log(form);
if(form == null)
return 0;
else{
for(i = 0; i < form.length; i++){
value = form.elements[i].value;
if(value != "" || value != null)
count++;
}
console.log(count);
return count;
}
}
表单显示为null。谁知道为什么?
答案 0 :(得分:0)
您的模板在代码运行时可能已呈现或未呈现,因此您可以在模板的呈现回调中运行函数,然后分配返回值,而不是将其作为模板的帮助程序。到一个被动的会话变量。
Template.myFormTemplate.rendered = function() {
Session.setDefault("formElementCount", 0);
var count = 0;
var form = this.find("#quote-form");
console.log(form);
if(!!form){
for(i = 0; i < form.length; i++){
value = form.elements[i].value;
if(value != "" || value != null)
count++;
}
console.log(count);
Session.set("formElementCount", count);
}
}
然后作为模板中的助手
Template.myFormTemplate.numFormsCompleted = function() {
var count = Session.get("formElementCount");
return count;
}
这样,无论何时呈现表单模板,它都会在您的帮助程序中反应性地为您提供元素计数,并且作为额外的奖励,您也可以在其他模板中使用它。