流星:把手能够组合#if和#with?

时间:2016-03-04 22:38:07

标签: meteor meteor-blaze meteor-helper

目前,我从第三方数据库中提取信息,模板使用该数据。

<template name="dogTypeData">
  {{#if userOwnsDog typeOfDog}}
    {{#with userOwnsDog typeOfDog}}
      // populate info here with user's dog
    {{/with}}
  {{else}}
    You do not own this kind of dog yet!
  {{/else}}
  {{/if}}
</template>

帮助者看到所有者是否拥有这种类型的狗:

Template.dogTypeData.helpers({
  userOwnsDog: function(typeOfDog){
    return OwnedDogs.findOne({
      type: typeOfDog
    });
  }
});

我很好奇是否有办法合并#if#with语句,或者甚至是必要的。为了简化代码,只需调用userOwnsDog(typeOfDog)一次而不是两次。比如,是否有{{#ifwith}}类型的陈述?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将它们组合在一起,因为此处不需要初始if。可以像这样重写相同的模板:

<template name="dogTypeData">
  {{#with userOwnsDog typeOfDog}}
    // populate info here with user's dog
  {{else}}
    You do not own this kind of dog yet!
  {{/with}}
</template>

另请参阅this section中的Understanding Spacebars