如何让 Angular2 dart 在 IE11 中工作
How to get Angular2 dart to work in IE11
我的应用程序和 IE11 有问题,所以我刚刚克隆了 toh-6 项目并尝试在 IE11 中 运行 它并得到了同样的错误:
RangeError (index): Index out of range: no indices are valid: 0
at ioore (http://10.0.2.2:8080/main.dart.js:3843:7)
at BrowserDomAdapter.getBaseHref[=10=] (http://10.0.2.2:8080/main.dart.js:29341:11)
at BrowserPlatformLocation.getBaseHrefFromDOM[=10=] (http://10.0.2.2:8080/main.dart.js:29423:9)
at PathLocationStrategy.PathLocationStrategy (http://10.0.2.2:8080/main.dart.js:29716:11)
at PathLocationStrategy.static.PathLocationStrategy$ (http://10.0.2.2:8080/main.dart.js:29724:11)
...
我已经尝试使用 angular2 2.0.0
和 2.2.0
,两者都产生相同的错误。
我发现一个 GitHub issue 9 月份的问题似乎是同样的问题。
我认为 Google 已经在他们的项目中使用了 angular2 dart(我假设他们也支持 IE11),所以必须有解决这个问题的方法。
编辑:正如 GitHub 上的用户 @dergemkr
所指出的:仅当 <base href="/">
设置为 [=15= 时才存在问题],这就是示例(设置为 <base href="/toh-6">
有效的原因。
显然正在修复。与此同时,这就是你如何让它工作的:
在 angular2/lib/src/platform/browser/browser_adapter.dart#510
中更改此行:
return (pathname[0] == '/') ? pathname : '/${pathname}';
对此:
return (pathname.isEmpty || pathname[0] == '/') ? pathname : '/${pathname}';
我的应用程序和 IE11 有问题,所以我刚刚克隆了 toh-6 项目并尝试在 IE11 中 运行 它并得到了同样的错误:
RangeError (index): Index out of range: no indices are valid: 0
at ioore (http://10.0.2.2:8080/main.dart.js:3843:7)
at BrowserDomAdapter.getBaseHref[=10=] (http://10.0.2.2:8080/main.dart.js:29341:11)
at BrowserPlatformLocation.getBaseHrefFromDOM[=10=] (http://10.0.2.2:8080/main.dart.js:29423:9)
at PathLocationStrategy.PathLocationStrategy (http://10.0.2.2:8080/main.dart.js:29716:11)
at PathLocationStrategy.static.PathLocationStrategy$ (http://10.0.2.2:8080/main.dart.js:29724:11)
...
我已经尝试使用 angular2 2.0.0
和 2.2.0
,两者都产生相同的错误。
我发现一个 GitHub issue 9 月份的问题似乎是同样的问题。
我认为 Google 已经在他们的项目中使用了 angular2 dart(我假设他们也支持 IE11),所以必须有解决这个问题的方法。
编辑:正如 GitHub 上的用户 @dergemkr
所指出的:仅当 <base href="/">
设置为 [=15= 时才存在问题],这就是示例(设置为 <base href="/toh-6">
有效的原因。
显然正在修复。与此同时,这就是你如何让它工作的:
在 angular2/lib/src/platform/browser/browser_adapter.dart#510
中更改此行:
return (pathname[0] == '/') ? pathname : '/${pathname}';
对此:
return (pathname.isEmpty || pathname[0] == '/') ? pathname : '/${pathname}';