我的网站上的this page您可以在桌面浏览器上正常运行,但在iOS8 Safari上有一个奇怪的错误:
索引模板未显示,控制台中出现错误:
TypeError:尝试分配给readonly属性。
它指向以下行:
}), e("rsvp/promise/all", ["../utils", "exports"], function(e, t) {
"use strict";
var r = e.isArray, n = e.isNonThenable;
t["default"] = function(e, t) {
var i = this;
return new i(function(t, a) {
function o(e) {
return function(r) {
c[e] = r, 0===--u && t(c)
}
}
function s(e) {
u = 0, a(e)
}
if (!r(e))
throw new TypeError("You must pass an array to all.");
var l, u = e.length, c = new Array(u);
if (0 === u) // This is the line with error
return void t(c);
for (var h = 0; h < e.length; h++)
l = e[h], n(l) ? (c[h] = l, 0===--u && t(c)) : i.cast(l).then(o(h), s)
}, t)
}
}), e("rsvp/promise/cast", ["exports"], function(e) {
"use strict";
对于移动游猎而言,这是一个众所周知的错误,有没有解决?
答案 0 :(得分:8)
RSVP的维护者,抱歉您遇到了这个问题。
首先,您似乎使用的是较旧版本的RSVP。我建议升级。
不幸的是,这个问题可能与https://github.com/emberjs/ember.js/pull/5629 出现有关,只是因为运行iOS 8的非64位设备的JSC在使用严格& #39;模式。在我的观察中,它只发生在特定的情况下,然后才会在有问题的代码得到优化时发生。
我再也不确定升级是否会对您有所帮助,但无论如何都应该考虑它。此外,如果问题仍然存在,则删除所有use strict
语句可能是最佳选择。
如果很快没有出现解决方案,我可能会发布RSVP更新,并删除use strict语句。
答案 1 :(得分:3)
您是否尝试从代码中删除所有"use strict";
?根据我的理解,它似乎只发生在3代iPad上。