1

我正在开发一个 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,但我似乎无法让它崩溃 - 所以我们设置视图的方式一定有一些东西导致了问题。任何有关如何进行调试的建议将不胜感激!

谢谢,斯科特

4

1 回答 1

0

您可以使用 ContainerView 实现相同的目的,但我也面临类似的问题,即子视图未接收模型/控制器。这是一个[类似的帖子](一个需要 ContainerView 的示例,其中 childViews 与它们各自的控制器绑定“containerview 的 childviews 控制器绑定”)

于 2013-02-26T21:38:30.640 回答