我遇到了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变量更改后,新值被打印到日志中。
答案 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}}