Angular 2 を ng2-bootstrap と共に使用して作成し、Webpack と Universal を使用してサービスを提供している Web サイトは、Chrome では問題なく動作していますが、Safari や Microsoft Edge では動作しません。
現時点ではSafariが最も重要です。
開発者コンソールで、次のエラーが表示されます。
[Error] EXCEPTION: Attempted to assign to readonly property.
handleError
next
(anonymous function)
__tryOrUnsub
next
_next
next
next
emit
onError
onHandleError
handleError (zone.js:207)
runTask (zone.js:139)
invoke (zone.js:304)
[Error] ORIGINAL STACKTRACE:
handleError
next
(anonymous function)
__tryOrUnsub
next
_next
next
next
emit
onError
onHandleError
handleError (zone.js:207)
runTask (zone.js:139)
invoke (zone.js:304)
[Error] setProperty
setElementProperty
detectChangesInternal
detectChanges
detectViewChildrenChanges
detectChangesInternal
detectChanges
detectViewChildrenChanges
detectChangesInternal
detectChanges
detectContentChildrenChanges
detectChangesInternal
detectChanges
detectContentChildrenChanges
detectChangesInternal
detectChanges
detectViewChildrenChanges
detectChangesInternal
detectChanges
detectChanges
forEach@[native code]
tick
invoke@http://localhost:3000/node_modules/zone.js/dist/zone.js:203:33
onInvoke
invoke@http://localhost:3000/node_modules/zone.js/dist/zone.js:202:42
run@http://localhost:3000/node_modules/zone.js/dist/zone.js:96:49
runInner
run
next
__tryOrUnsub
next
_next
next
next
emit
_checkStable
onLeave
onInvokeTask
invokeTask@http://localhost:3000/node_modules/zone.js/dist/zone.js:235:54
runTask@http://localhost:3000/node_modules/zone.js/dist/zone.js:136:57
invoke@http://localhost:3000/node_modules/zone.js/dist/zone.js:304:40
handleError
next
(anonymous function)
__tryOrUnsub
next
_next
next
next
emit
onError
onHandleError
handleError (zone.js:207)
runTask (zone.js:139)
invoke (zone.js:304)
[Error] TypeError: Attempted to assign to readonly property.
__tryOrUnsub
next
_next
next
next
emit
onError
onHandleError
handleError (zone.js:207)
runTask (zone.js:139)
invoke (zone.js:304)
何かを割り当てようとしている読み取り専用プロパティを見つけることができないため、これはあまり役に立ちません。
詳細がわかり次第、ここに進捗状況を投稿します。
アップデート
最新の Angular 2 2.1.0 バージョンに更新しましたが、まだ運がありません。
また、誰かが「厳密な使用」を削除する別のプロジェクトを読みました。プロジェクトから、これは少なくともエラーなしでページをロードしました。しかし、リンクをクリックしようとすると、エラーが返されました。
アップデート
エラーの原因となっている実際の行を最終的に見つけました。
BrowserDomAdapter.prototype.setProperty = function(el, name, value) {
el[name] = value
};
プロパティを設定する前に、プロパティが読み取り専用かどうかを判断する方法はありますか?
アップデート
1つのエラーが修正されたと思います。テンプレートのコンポーネントの 1 つで、読み取り専用のスタイル プロパティを割り当てていたことがわかりました。
そのため、代わりに<div [style]="getStyle()">
TypeError<div [attr.style]="getStyle()">
の発生を停止しました。
ただし、別のエラーが発生しました。
[Error] EXCEPTION: Can't find variable: Intl
handleError (index.js:13885:260)
next (index.js:8825:664)
(anonymous function) (index.js:9320:555)
__tryOrUnsub (index.js:980:1636)
next (index.js:980:768)
_next (index.js:975:294)
next (index.js:962)
next (index.js:1316:668)
emit (index.js:9320:179)
onError (index.js:9572:261)
onHandleError (index.js:20269:272)
handleError (index.js:27565:6501)
runTask (index.js:27565:3198)
invoke (index.js:27567:1047)
[Error] ORIGINAL STACKTRACE:
handleError (index.js:13885:439)
next (index.js:8825:664)
(anonymous function) (index.js:9320:555)
__tryOrUnsub (index.js:980:1636)
next (index.js:980:768)
_next (index.js:975:294)
next (index.js:962)
next (index.js:1316:668)
emit (index.js:9320:179)
onError (index.js:9572:261)
onHandleError (index.js:20269:272)
handleError (index.js:27565:6501)
runTask (index.js:27565:3198)
invoke (index.js:27567:1047)
[Error] intlDateFormat@http://localhost:3000/index.js:11996:633
http://localhost:3000/index.js:12000:513
http://localhost:3000/index.js:12000:1106
forEach@[native code]
dateFormatter@http://localhost:3000/index.js:12000:1057
format@http://localhost:3000/index.js:12000:1448
transform@http://localhost:3000/index.js:17986:940
[native code]
http://localhost:3000/index.js:6148:4063
detectChangesInternal
detectChanges@http://localhost:3000/index.js:19974:507
detectContentChildrenChanges@http://localhost:3000/index.js:19977:438
detectChangesInternal
detectChanges@http://localhost:3000/index.js:19974:507
detectContentChildrenChanges@http://localhost:3000/index.js:19977:438
detectChangesInternal
detectChanges@http://localhost:3000/index.js:19974:507
detectViewChildrenChanges@http://localhost:3000/index.js:19977:724
detectChangesInternal
detectChanges@http://localhost:3000/index.js:19974:507
detectViewChildrenChanges@http://localhost:3000/index.js:19977:724
detectChangesInternal
detectChanges@http://localhost:3000/index.js:19974:507
detectContentChildrenChanges@http://localhost:3000/index.js:19977:438
detectChangesInternal@http://localhost:3000/index.js:19977:98
detectChanges@http://localhost:3000/index.js:19974:507
detectContentChildrenChanges@http://localhost:3000/index.js:19977:438
detectChangesInternal
detectChanges@http://localhost:3000/index.js:19974:507
detectViewChildrenChanges@http://localhost:3000/index.js:19977:724
detectChangesInternal
detectChanges@http://localhost:3000/index.js:19974:507
detectChanges@http://localhost:3000/index.js:14295:1477
http://localhost:3000/index.js:8848:612
forEach@[native code]
tick@http://localhost:3000/index.js:8848:563
http://localhost:3000/index.js:8844:973
invoke@http://localhost:3000/index.js:27565:6355
onInvoke@http://localhost:3000/index.js:20266:1016
invoke@http://localhost:3000/index.js:27565:6265
run@http://localhost:3000/index.js:27565:2197
runInner@http://localhost:3000/index.js:20269:446
run@http://localhost:3000/index.js:9613:65
next@http://localhost:3000/index.js:8844:951
http://localhost:3000/index.js:9320:554
__tryOrUnsub@http://localhost:3000/index.js:980:1635
next@http://localhost:3000/index.js:980:767
_next@http://localhost:3000/index.js:975:293
next@http://localhost:3000/index.js:962:73
next@http://localhost:3000/index.js:1316:667
emit@http://localhost:3000/index.js:9320:178
_checkStable@http://localhost:3000/index.js:9574:44
onLeave@http://localhost:3000/index.js:9572:19
onInvokeTask@http://localhost:3000/index.js:20266:890
invokeTask@http://localhost:3000/index.js:27565:7121
runTask@http://localhost:3000/index.js:27565:3119
invoke@http://localhost:3000/index.js:27567:1046
handleError (index.js:13885:483)
next (index.js:8825:664)
(anonymous function) (index.js:9320:555)
__tryOrUnsub (index.js:980:1636)
next (index.js:980:768)
_next (index.js:975:294)
next (index.js:962)
next (index.js:1316:668)
emit (index.js:9320:179)
onError (index.js:9572:261)
onHandleError (index.js:20269:272)
handleError (index.js:27565:6501)
runTask (index.js:27565:3198)
invoke (index.js:27567:1047)
[Error] ReferenceError: Can't find variable: Intl
__tryOrUnsub (index.js:980:1697)
next (index.js:980:768)
_next (index.js:975:294)
next (index.js:962)
next (index.js:1316:668)
emit (index.js:9320:179)
onError (index.js:9572:261)
onHandleError (index.js:20269:272)
handleError (index.js:27565:6501)
runTask (index.js:27565:3198)
invoke (index.js:27567:1047)
Angular の common/bundles/common.umd.js にあることがわかりましたが、Safari では定義されていません。何か案は?