2014-10-09 62 views
1

我的手柄模板(在Ember應用程序中)有一個簡單的if/else語句,但由於某些原因,if和else分支都呈現。Handlebars if/else渲染兩個分支

下面是一段代碼:

{{#if loading}} 
    <p>Loading</p> 
{{else}} 
    {{#if loaded}} 
     loaded 
     <p><button {{action "play" this}}>Play</button><p> 
    {{else}} 
     not loaded 
     <p><button {{action "load" this}}>Load</button><p> 
    {{/if}} 
{{/if}} 

最初,只有else分支呈現,但是當我加載聲音,並將其loaded鍵設置爲true,無論是ifelse分支渲染。

這是改變聲音的loaded屬性的方法:

load: function() { 
    var media = new window.Media(this.get("normalizedPath"), this._finishedPlaying.bind(this), this._finishedPlaying.bind(this)), 
     loadPromise; 

    this.set("media", media); 
    this.set("loading", true); 

    if(media.load) { 
     loadPromise = media.load(); 
    } 
    else { 
     loadPromise = RSVP.resolve(this); 
    } 

    return loadPromise.then(function() { 
     this.set("loading", false); 
     this.set("loaded", true); 
     return this; 
    }.bind(this)); 
}, 

任何幫助將不勝感激。

+0

你可能想要提供處理加載狀態的代碼:) – MartinElvar 2014-10-09 16:42:10

+0

@MartinElvar我不明白爲什麼這是必要的。有什麼我可以做的'裝載'屬性會導致句柄呈現兩個分支?無論如何,我會添加代碼。 – SimpleJ 2014-10-09 16:45:12

回答

3

你在這裏有壞的html,你錯過了結束p標籤,而是有開放的p標籤。

+0

謝謝。這是問題。我會盡我所能接受答案。 – SimpleJ 2014-10-09 16:49:12