流星模板:如果声明没有被动

时间:2015-10-09 11:57:07

标签: meteor-blaze

我遇到了Blaze(Meteor 1.2.0.2)的麻烦

如果在模板中进行评估,但当它们不再为真时,内容仍会打印。

Template.registerHelper("equals", function (a, b) {
    return (a == b);
});

Template.login.helpers({
   'loadingLogoStatus': function(){
       lg(Session.get('logoDownloadStatus'));
       return Session.get('logoDownloadStatus');
   },
   'logoURI': function(){
       return Session.get(Session.get('logoURI')) || '';
   }
});

{{#if loadingLogoStatus equals 'WAIT_DOWNLOAD'}}
    Logo is loading...
{{/if}}
{{#if loadingLogoStatus equals 'ERR_DOWNLOAD'}}
    Logo loading error 
{{/if}}

问题实际上是只要loadingLogoStatus =='WAIT_DOWNLOAD', Logo正在加载...... 就会打印出来。

但是当loadingLogoStatus ='ERR_DOWNLOADED **时,前一个字符串仍然存在,然后是徽标加载错误

如果我尝试使用if / else构造,则情况相同。

我检查了它是否是帮助器问题,并且自从Session变量更改后,新值被打印到日志中。

2 个答案:

答案 0 :(得分:1)

尝试=== b

在JavaScript中需要3个等号来评估一个值到另一个值。

答案 1 :(得分:1)

我发现了问题所在。

我在错误的位置使用等于

正确的一个:

{{#if equals loadingLogoStatus 'WAIT_DOWNLOAD'}}
    Logo is loading...
{{/if}}
{{#if equals loadingLogoStatus 'ERR_DOWNLOAD'}}
    Logo loading error 
{{/if}}