【问题标题】:Meteor templates, check if value equals string流星模板,检查值是否等于字符串
【发布时间】:2015-08-21 22:14:25
【问题描述】:

这是模板结构

{{#each loadedEvents}}
  {{#if future}}
    {{#if timezone="Europe/Warsaw"}}
    {{> event}}
  {{/if}}
{{/each}}

是否可以仅查看具有给定值的项目? 第二个问题,如何结合这两个语句:

{{#if future}} {{#if timezone="Europe/Warsaw"}}

【问题讨论】:

    标签: javascript templates if-statement meteor


    【解决方案1】:

    使用Template.registerHelper 创建一个全局助手。例如,创建一个比较两个任意变量的助手:

    Template.registerHelper('compare', function(v1, v2) {
      if (typeof v1 === 'object' && typeof v2 === 'object') {
        return _.isEqual(v1, v2); // do a object comparison
      } else {
        return v1 === v2;
      }
    });
    

    然后使用它:

    {{#if compare timezone "Europe/Warsaw"}}
         // Do something
    {{/if}}
    

    【讨论】:

      【解决方案2】:

      您可以创建一个专用助手来检查时区是否等于某个值:

      Template.loadedEvents.helpers({
        timezoneIs: function(timezone){
          return this.timezone == timezone;
        }
      });
      

      如果您想组合两个空格键{{#if}} 块助手,请再次创建一个专用助手,在 JS 中执行测试:

      JS

      Template.loadedEvents.helpers({
        isFutureAndTimezoneIs: function(timezone){
          return this.future && this.timezone == timezone;
        }
      });
      

      HTML

      {{#each loadedEvents}}
        {{#if isFutureAndTimezoneIs "Europe/Warsaw"}}
          {{> event}}
        {{/if}}
      {{/each}}
      

      【讨论】:

      • 谢谢,我已将条件转移到帮助代码中,结果与 #if 和 #unless 不同 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      • 2014-07-29
      • 2018-04-01
      • 2016-12-21
      • 2017-04-16
      • 2023-03-14
      • 2019-10-10
      相关资源
      最近更新 更多