Ember模板中的未闭合元素错误

时间:2016-12-23 16:51:42

标签: javascript ember.js

我收到此错误:

Error: Unclosed element `container.style.display` (on line 25). 

我的计划的第25行是:

if ((container.style.opacity -= .01) <= 0)

但我认为它指的是以下这一行:

container.style.display = "none";

为什么我收到此错误?

背景信息:

<script>
var container = document.getElementById('popUpContainer');

function popUpFadeOut() {
    if (container.style.opacity == 0) {
        container.style.opacity = 1;
        container.style.display = "block";

        var fading = function fade() {

            if ((container.style.opacity -= .01) <= 0) {
                container.style.display = "none";
                container.style.opacity = 0;
            } else {
                requestAnimationFrame(fade);
            }
        };

        setTimeout(fading, 1000); //popup box fades away after 1 seconds
    }
};
</script>

1 个答案:

答案 0 :(得分:2)

您提到的错误消息来自HTML解析上下文,很可能是HTMLBars,这意味着您在模板中包含了一个脚本,您不应该首先这样做。

快速解决方法是将<替换为&lt;。正确的解决方案是将脚本从模板移动到它所属的JS文件中。

请注意,这在HTML文件中不会出现问题,因为脚本标记(今天)受到保护&#34;并且其中唯一可能导致问题的HTML就像{{1 }}。似乎HTMLBars中的HTML解析登录没有实现这个&#34;保护&#34;机制。从理论上讲,这可能被认为是一个错误,但没有人会担心它,没有人会修复它,因为你不应该在模板中放置脚本标签。