2013-02-23 76 views
1

我正在使用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,但我似乎無法讓它突破 - 所以必須有我們的視圖設置導致問題的方式的東西。有關如何進行調試的任何建議將非常感謝!

感謝, 斯科特

+0

嗯,我還沒有想通了,爲什麼這個代碼是沒有在IE瀏覽器,而是通過改變{{模板}}傭工{{圖} }幫手,它開始工作。看起來Ember中有一些IE漏洞與{{template}}助手,但不幸的是我似乎無法在沒有我們的完整代碼庫的情況下重現 – 2013-02-27 14:26:58

回答