AngularJS项目适用于IE,但不适用于Chrome

时间:2014-07-14 07:07:30

标签: javascript angularjs

奇怪的事发生在我身上。 AngularJS项目在IE9中正常,但在Chrome 35.0.1916.153中无效。然后我开始调试Angularjs的源代码,发现' replace '代码返回不同结果的问题:

html.replace(XHTML_TAG_REGEXP, "<$1></$2>")

(我正在使用的版本的Angularjs源代码的第2266行)

这在IE中正常运行,但在Chrome中有误。

有没有人遇到过这个问题?

UPDATE1:

对不起家伙们,当我缩小问题的范围时,它实际上并不在“替换”代码中。它发生在

tmp.innerHTML = 'my directive html template'.

我的模板是这样的:

<table>
  <thead>
      <matrixheader> 
      </matrixheader>
  </thead>
  <tbody>
      <matrixrows> 
      </matrixrows>
  </tbody>
</table>

'matrixheader'和'matrixrows'是2个指令,我用它们动态创建表列标题和表行。

当AngularJS将此模板分配给tmp.innerHTML时,在此分配后的IE中,template.innerHTML就是这样,但在Chrome中它将变为:

<matrixheader> 
</matrixheader>
<matrixrows> 
</matrixrows>
<table>
  <thead>
  </thead>
  <tbody>
  </tbody>
</table>

然后Angularjs将抛出异常:

 Error: [$compile:tplrt] Template for directive 'matrix' must have exactly one root element. partials/matrix.html

0 个答案:

没有答案