私は Ember アプリ (RC1 を使用) に取り組んでおり、IE に問題があります (驚き)。旅行の概要、詳細、または編集のいずれかを表示できる一連のネストされたビューがあります。トリップビューは(おおよそ)次のようになります。
{{#if tripController.showSummary}}
{{template "view/TripSummaryView"}}
{{/if}}
{{#if tripController.showDetails}}
{{template "view/TripDetailView"}}
{{/if}}
{{#if tripController.showEdit}}
{{template "view/TripEditView"}}
{{/if}}
旅行の概要ビューを囲む div には、次のアクションがあります。
<div {{bindAttr id="tripController.tripId"}}
class="card single-line"
{{action "toggleDetails" tripController on="click"}}
style="cursor:pointer">
そしてコントローラーはアクションを処理します:
toggleDetails: function(tripController) {
if (this.get('showDetails')) {
this.set('showDetails', false);
this.set('showSummary', true);
} else {
this.set('showDetails', true);
this.set('showSummary', false);
}
},
すべてがかなりバニラで、Chrome、FF、および Safari で完全に動作します。しかし、IE で実行すると、メタモーフの realNode() 関数 (ember.js の 17264 行目) で爆発します。
var realNode = function(start) {
while (start.parentNode.tagName === "") {
start = start.parentNode;
}
return start;
};
このエラーで:
SCRIPT5007: Unable to get value of the property 'parentNode': object is null or undefined
コードにブレークポイントを配置すると、Ember が 2 つのメタモルフを削除しようとしているように見えますが、2 番目は最初のメタモルフの内側にあるためstart
、2 回目は null になります。Chrome でその関数にブレークポイントを設定しましたが、呼び出されたようには見えません。
これを JSFiddle に縮小しようとしましたが、それを壊すことはできないようです。つまり、ビューをセットアップする方法に問題が発生しているに違いありません。これをデバッグする方法についての提案は大歓迎です!
ありがとう、スコット