把手if / else渲染两个分支

时间:2014-10-09 16:40:11

标签: javascript ember.js handlebars.js

我的把手模板(在Ember应用程序中)有一个简单的if / else语句,但由于某种原因,正在渲染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));
},

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

你在这里遇到了糟糕的HTML,你错过了关闭的p标签,而是打开了p标签。