Meteor 如何在每次触发按钮单击事件时调用助手函数
我有一个模板,在这个模板中,我试图通过一个助手函数调用button click来设置输入元素的值。第一次单击时一切正常,但第二次单击后,虽然调用了该函数,但在输入元素中并没有设置值。 下面是我的代码:Meteor 如何在每次触发按钮单击事件时调用助手函数,meteor,Meteor,我有一个模板,在这个模板中,我试图通过一个助手函数调用button click来设置输入元素的值。第一次单击时一切正常,但第二次单击后,虽然调用了该函数,但在输入元素中并没有设置值。 下面是我的代码: <div class="form-group input-group" id="div_familyaddress"> <span class="input-group-addon"><span class="glyphicon glyphicon
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`
Registration.html
`
找到我的位置
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`
助手是Blaze调用的一个函数,用于帮助它渲染数据。这不是你想要手动调用的东西。您真正要问的是:如何调用事件处理程序和助手的公共代码
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`
有不同的方法可以做到这一点。最简单的方法是简单地将公共函数添加到文件范围中。e、 g
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`
const commonFn = function() {
return 5;
}
Template.foo.helpers({
bar() {
return commonFn();
}
});
Template.foo.events({
'click .baz': function() {
return commonFn();
}
});
另一种方法是将公共函数定义为模板的一部分,并将其分配给反应式var:
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`
Template.foo.onCreated(function() {
commonFn() {
return 5;
}
this.common = new ReactiveVar(commonFn);
});
Template.foo.helpers({
bar() {
return Template.instance.common.get();
}
});
Template.foo.events({
'click .baz': function(event, template) {
return template.common.get();
}
});
助手是Blaze调用的一个函数,用于帮助它渲染数据。这不是你想要手动调用的东西。您真正要问的是:如何调用事件处理程序和助手的公共代码
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`
有不同的方法可以做到这一点。最简单的方法是简单地将公共函数添加到文件范围中。e、 g
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`
const commonFn = function() {
return 5;
}
Template.foo.helpers({
bar() {
return commonFn();
}
});
Template.foo.events({
'click .baz': function() {
return commonFn();
}
});
另一种方法是将公共函数定义为模板的一部分,并将其分配给反应式var:
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`
Template.foo.onCreated(function() {
commonFn() {
return 5;
}
this.common = new ReactiveVar(commonFn);
});
Template.foo.helpers({
bar() {
return Template.instance.common.get();
}
});
Template.foo.events({
'click .baz': function(event, template) {
return template.common.get();
}
});
模板帮助程序非常适合模板绑定,但是也可以手动调用它们
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`
Template.registerHelper('getCompanyName', function(companyId) {
return Meteor.CompanyHelper.getCompanyName(companyId) });
Meteor.CompanyHelper = {
getCompanyName: function(companyId) {
var company = Companies.findOne({_id: companyId});
if(company) {
return company.name;
}
}}
可以从任何代码直接调用上述帮助程序,如下所示:
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`
Meteor.CompanyHelper.getCompanyName('CompanyId');
希望这能帮助您模板帮助程序非常适合模板绑定,但也可以手动调用
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`
Template.registerHelper('getCompanyName', function(companyId) {
return Meteor.CompanyHelper.getCompanyName(companyId) });
Meteor.CompanyHelper = {
getCompanyName: function(companyId) {
var company = Companies.findOne({_id: companyId});
if(company) {
return company.name;
}
}}
可以从任何代码直接调用上述帮助程序,如下所示:
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`
Meteor.CompanyHelper.getCompanyName('CompanyId');
希望这对你有帮助
<div class="form-group input-group" id="div_familyaddress">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
<input type="text" class="form-control" placeholder="Family Address" name="txt_address" id="txt_address" value = "{{location}}">
</div>`