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,无论是if
和else
分支渲染。
这是改变声音的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));
},
任何帮助将不胜感激。
你可能想要提供处理加载状态的代码:) – MartinElvar 2014-10-09 16:42:10
@MartinElvar我不明白为什么这是必要的。有什么我可以做的'装载'属性会导致句柄呈现两个分支?无论如何,我会添加代码。 – SimpleJ 2014-10-09 16:45:12