2015-10-09 65 views
0

我在與Blaze(流星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',標誌載入中...打印。

然而,當loadingLogoStatus =「ERR_DOWNLOADED **,以前的字符串仍然有,它的後面標誌加載錯誤

如果我嘗試使用if/else構造,情況也是如此。

我檢查了它是否是幫手的問題,並且因爲Session變量沒有變化,新的值被打印到日誌中。

回答

1

嘗試=== b

需要3個等號在JavaScript來評估一個值到另一個。

+0

處理字符串處理的時候有什麼具體區別? – dragonmnl

+0

JavaScript使用它作爲比較字符串,值,對象,數組等。試試吧。讓我知道它是否有效 – BobFranz

1

我發現問題所在。

我正在使用等於在錯誤的位置。

正確的:

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