我正在使用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个变形,但第二个变形在第一个内部,因此start
第二次为空。我在Chrome中为该函数设置了一个断点,但似乎没有被调用。
我已经尝试将其缩减为一个JSFiddle,但我似乎无法让它破坏 - 所以必须有一些东西在我们设置的视图中引起问题。关于如何调试这个的任何建议将非常感谢!
谢谢, 斯科特
答案 0 :(得分:0)
您可以使用ContainerView实现相同,但我也面临类似的问题,其中childviews没有接收模型/控制器。这是[类似帖子](An example of ContainerView required where childViews are binded with their respective controllers&#34; containerview的childview控制器绑定&#34;)