Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 如何在每次触发按钮单击事件时调用助手函数_Meteor - Fatal编程技术网

Meteor 如何在每次触发按钮单击事件时调用助手函数

Meteor 如何在每次触发按钮单击事件时调用助手函数,meteor,Meteor,我有一个模板,在这个模板中,我试图通过一个助手函数调用button click来设置输入元素的值。第一次单击时一切正常,但第二次单击后,虽然调用了该函数,但在输入元素中并没有设置值。 下面是我的代码: <div class="form-group input-group" id="div_familyaddress"> <span class="input-group-addon"><span class="glyphicon glyphicon

我有一个模板,在这个模板中,我试图通过一个助手函数调用button click来设置输入元素的值。第一次单击时一切正常,但第二次单击后,虽然调用了该函数,但在输入元素中并没有设置值。 下面是我的代码:

    <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>`