原因是因为Angular
<!-- -->为ng-
repeat和类似的指令放置了html注释标签。不幸的是,Microsoft认为使用.innertHTML从Javascript插入这些文件是不安全的,因此是不允许的。可以在这里找到:
http://msdn.microsoft.com/zh-
CN/library/windows/apps/hh465388.aspx
它发生在jQLite的1534行:
var div = document.createElement('div'); // Read about the NoScope elements here: // http://msdn.microsoft.com/en-us/library/ms533897(VS.85).aspx div.innerHTML = '<div> </div>' + element; // IE insanity to make NoScope elements work! div.removeChild(div.firstChild); // remove the superfluous div发生什么是元素
<!-- ngRepeat: item in arrayTest -->
然后当angular div.innerHTML =
…时,该元素将被删除。如果在div.removeChild处放置一个断点,您会注意到div.innerHTML没有元素。
[编辑]写完此回复后,我尝试添加
MSApp.execUnsafeLocalFunction(function () { div.innerHTML = '<div> </div>' + element });有用!显然,您必须将所有angularjs包装在MSApp.execUnsafeLocalFunction中,然后专门包装该行。



