我正在开发一个 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 中运行它时,它会在 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
第二次为 null。我在 Chrome 中的该函数中放置了一个断点,但它似乎从未被调用过。
我已经尝试将其简化为 JSFiddle,但我似乎无法让它崩溃 - 所以我们设置视图的方式一定有一些东西导致了问题。任何有关如何进行调试的建议将不胜感激!
谢谢,斯科特