Ember.js 1.10 - 无法在'Element'上执行'setAttribute':'''不是有效的属性名称

Ale*_*kov 4 javascript ember.js

从Ember.js 1.9升级到1.10后出现以下错误 -

Uncaught InvalidCharacterError:无法在'Element'上执行'setAttribute':'''不是有效的属性名称.

prototype.setAttribute = function(element, name, value) {
    element.setAttribute(name, String(value));
};
Run Code Online (Sandbox Code Playgroud)

价值观是:

value: "" 
name: """ 
element: <span></span>
Run Code Online (Sandbox Code Playgroud)

找到升级问题的最简单方法是什么?应该修复什么?该错误不是非常用户友好.

Ale*_*kov 6

排除故障的步骤:

  1. 打开编译模板(在我的例子中,它位于stacktrace VM.js:XXXX中).
  2. 仔细阅读.

在我的情况下它包含

var el1 = dom.createElement("span");
dom.setAttribute(el1,"\"","");
dom.appendChild(el0, el1);
Run Code Online (Sandbox Code Playgroud)
  1. 对应这些行的开源模板.

例如

<span {{action "setUrgency" urgentItem.urgency}} {{bind-attr class=urgentItem.styleClass}}"></span>
Run Code Online (Sandbox Code Playgroud)
  1. 删除'(这是一个问题).

此问题是由不正确的模板引起的(HTMLBars能够在没有警告的情况下编译它)但是在执行编译模板期间发生了错误.一旦模板修复,一切正常.

  • 这是一个完整的答案人. (3认同)