我正在使用Ember應用程序(使用RC1),並且遇到了IE(意外)問題。我們有一系列嵌套視圖,可以顯示旅程的摘要,詳細信息或編輯。此行視圖的外觀(大致)是這樣的:Morph無法在IE 8/9中刪除
{{#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瀏覽器,它的炸彈在的Metamorph的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個變形,但是第二個是在第一個內部,因此start
第二次是空的。我在Chrome中爲該函數添加了一個斷點,但它似乎並沒有被調用。
我試着把它降低到一個JSFiddle,但我似乎無法讓它突破 - 所以必須有我們的視圖設置導致問題的方式的東西。有關如何進行調試的任何建議將非常感謝!
感謝, 斯科特
嗯,我還沒有想通了,爲什麼這個代碼是沒有在IE瀏覽器,而是通過改變{{模板}}傭工{{圖} }幫手,它開始工作。看起來Ember中有一些IE漏洞與{{template}}助手,但不幸的是我似乎無法在沒有我們的完整代碼庫的情況下重現 – 2013-02-27 14:26:58