变形无法在IE 8/9中删除

时间:2013-02-23 14:44:28

标签: ember.js

我正在使用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,但我似乎无法让它破坏 - 所以必须有一些东西在我们设置的视图中引起问题。关于如何调试这个的任何建议将非常感谢!

谢谢, 斯科特

1 个答案:

答案 0 :(得分:0)

您可以使用ContainerView实现相同,但我也面临类似的问题,其中childviews没有接收模型/控制器。这是[类似帖子](An example of ContainerView required where childViews are binded with their respective controllers&#34; containerview的childview控制器绑定&#34;)