Ember.js组件第二次加载时出现神秘错误



我正在尝试渲染一个名为stat-table的组件到以下模板:

<script type="text/x-handlebars" id="table">
    <h3>{{name}}</h3>
    {{stat-table rows=rows}}
</script>

其中rowsTable模型的hasManyrow模型的关系。下面是组件模板(tagName"table"):

<script type="text/x-handlebars" id="components/stat-table">
    {{#each rows}}
        <tr>
            <td>test</td>
        </tr>
    {{/each}}
</script>

第一次加载组件时,它会完美地呈现。但是,如果我切换到不同的视图(具有stat-table组件的表视图未呈现),然后切换回来,我会在控制台中得到以下神秘的错误:

Uncaught #<error>             ember.js:73

我使用statTableComponentinit函数做了一些窥探,包括如下:

App.StatTableComponent = Ember.Component.extend({
    tagName: "table",
    classNames: ["stat-table"],
    init: function() {
        this._super();
        this.get("rows")
        .then(function(rows) {
            console.log(rows);
        });
    }
});

在上面的代码中,错误在rows的承诺解决之前触发。错误可能会发生,因为#each助手试图在解决之前迭代rows的承诺,但我不确定为什么这只会在第二次视图加载后发生…

如何让组件在每次渲染时都顺利加载?

Update- Full Stack Trace of Error:

Uncaught #<error> ember.js:73
    Ember.assert ember.js:73
    (anonymous function) ember.js:30066
    sendEvent ember.js:2599
    Ember.Evented.Ember.Mixin.create.trigger ember.js:18317
    superFunction ember.js:7723
    Ember.CoreView.Ember.Object.extend.trigger ember.js:22507
    superWrapper ember.js:1292
    Ember.View.Ember.CoreView.extend.triggerRecursively ember.js:24061
    superWrapper ember.js:1292
    (anonymous function) ember.js:25652
    Ember.EnumerableUtils.forEach ember.js:1932
    ViewCollection.forEach ember.js:22611
    insertViewCollection ember.js:25649
    Ember.merge.ensureChildrenAreInDOM ember.js:25635
    Ember.ContainerView.Ember.View.extend._ensureChildrenAreInDOM ember.js:25587
    DeferredActionQueues.flush ember.js:6127
    Backburner.end ember.js:6215
    Backburner.run ember.js:6254
    Ember.run ember.js:6664
    Ember.EventDispatcher.Ember.Object.extend._bubbleEvent ember.js:22294
    (anonymous function) ember.js:22243
    n.event.dispatch jquery.js:4409
    r.handle jquery.js:4095

您的表缺少<tbody>标记http://emberjs.com/blog/2014/03/30/ember-1-5-0-and-ember-1-6-beta-released.html.

相关内容

最新更新