【问题标题】:return multiple different values from single helper function?从单个辅助函数返回多个不同的值?
【发布时间】:2015-07-21 10:50:28
【问题描述】:

我有一个助手 compare,它返回一个简单地突出显示文本的 css 类。 "better" 将其设为绿色,"worse" 将其设为红色。基本上该函数比较 2 个数字(注释掉的比较函数与它下面的三进制相同)。如何比较同一个辅助函数中的多个值?我知道我可以创建更多的辅助函数并一一比较所有数据,但我确信有更好的方法。这是模板的样子:

【问题讨论】:

    标签: meteor meteor-blaze


    【解决方案1】:

    从你的助手返回多个值作为一个对象,然后引用你模板中的键。

    js:

    Template.myTemplate.helpers({
      compare(){
        return { key1: value1, key2: value2, ... keyN: valueN};
      }
    });
    

    html:

    {{compare.key1}} etc... 
    

    【讨论】:

    • 是的,这就是我的想法,如果有“流星”方式的话,那是 jw
    • 我不确定这是否是正式的流星,但我在所有地方都使用这种模式并且效果很好。
    • 这很好,但是如果我想传入一个变量 {{icon.color type}} 怎么办?它不起作用
    • 您可以将参数添加到帮助程序,即compare(p1,p2){...},然后将它们从您的blaze模板作为{{compare p1 p2}}传入
    【解决方案2】:

    您必须在函数定义本身中将它们作为参数传递,这样应该可以解决问题:

    compare: function( number1, number2 ) {
      return number1 > number 2 ? "better" : "worse";
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-02
      • 2012-01-19
      • 1970-01-01
      • 2016-03-31
      • 2018-01-01
      • 2019-06-24
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      相关资源
      最近更新 更多