首页 > 解决方案 > 升级到 Ember 3.20.2 后获取模型未定义错误

问题描述

我们已经升级了一些项目以使用 Ember 3.20.2,我们正在解决问题,而且大部分情况都很好,但是我在一个项目中遇到了一个非常奇怪的问题。

我们从服务器检索记录作为模型,然后这些模型通过组件向下传递几个级别,并且有关模型的所有信息都可以显示在这些组件中,除非我们尝试在模板上渲染一个特定字段。模板的问题部分如下所示:

<div title={{task.details.title}}>
    {{task.details.title}}
</div>

该模型具有以下内容:

details: DS.attr(),

控制台中出现的错误如下所示:

Uncaught TypeError: task is undefined
    Ember 2
        taskHelper
        fnWrapper
    deprecateMutationsInAutotrackingTransaction validator.js:149
    fnWrapper Ember
    computeTag reference.js:250
    runInAutotrackingTransaction validator.js:121
    track validator.js:774
    compute reference.js:249
    HelperRootReference reference.js:223
    Ember 2
        EmberHelperRootReference
        _lookupHelper
    ...

细节现在是一个限制词吗?其他问题?

编辑:

实际上,我认为我已经缩小了错误的范围。它似乎不喜欢标题为 {{task.details.title}}。如果我删除标题属性,一切似乎都正常。deprecateMutationsInAutotrackingTransaction 的文档是:

/**
     * Switches to deprecating within an autotracking transaction, if one exists.
     * If `runInAutotrackingTransaction` is called within the callback of this
     * method, it switches back to throwing an error, allowing zebra-striping of
     * the types of errors that are thrown.
     *
     * Does not start an autotracking transaction.
     *
     * NOTE: For Ember usage only, in general you should assert that these
     * invariants are true.
     */

这可能表明为什么某些标题属性会失败,但我无法从该文档中得到太多信息。

标签: ember.js

解决方案


推荐阅读