gpt4 book ai didi

javascript - 升级 ember-cli 后的 ember-cli "TypeError: desc.get is not a function"

转载 作者:行者123 更新时间:2023-11-28 07:17:56 26 4
gpt4 key购买 nike

使用 ember v.1.12.0 将 ember-cli 更新到 v0.2.7 后,我遇到了一些有趣的行为,在使用计算属性时会导致异常。

使用型号:

User = Ember.Object.extend
md5: ""
gravatar: (->
return get_gravatar(@get("md5"))
).property("md5")

在路由器中调用u.get("gravatar")afterModel方法,我得到这个:

u.get("gravatar")
ember.debug.js:15588 Uncaught TypeError: desc.get is not a function
at Object.get (../vendor.js:26142:19)
at exports.default.mixin.Mixin.create.get (../vendor.js:39811:27)
at eval (eval at evaluate (unknown source), <anonymous>:1:3)
at Object.InjectedScript._evaluateOn (<anonymous>:895:55)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:828:34)
at Object.InjectedScript.evaluateOnCallFrame (<anonymous>:954:21)
at afterModel (../v4.js:3438:16)
at applyHook (../vendor.js:55667:32)
at Object.HandlerInfo.runSharedModelHook (../vendor.js:53668:22)
at Object.HandlerInfo.runAfterModelHook (../vendor.js:53651:21)

当深入挖掘时,我发现错误发生在 `ember.debug.js 的 getter 函数中。

function get(obj, keyName) {
...
if (desc) {
return desc.get(obj, keyName);
// -> Error while processing route: recipe_edit desc.get is not a function TypeError: desc.get is not a function
} else {
...

desc的类型与我直接调用u.gravatar时的类型相同,所以我不太确定为什么这个问题不再得到解决。

desc: Object
_cacheable: true
_dependentKeys: Array[1]
_readOnly: false
isDescriptor: true
__proto__: Object

最佳答案

经过几个小时的调试,我自己解决了问题。我有一个序列化程序,可以解析循环引用并从 Ember 对象中删除所有不必要的属性,以将其转换为 JSON。

在之前的 Ember 版本中,它工作得很好,但在这个版本中,递归函数以某种方式通过对象进入一些 Ember 框架代码,并在运行时从 Ember 框架中删除了函数。。 p>

ComputedPropertyPrototype.volatile()
ComputedPropertyPrototype.property()
exports.default.mixin.Mixin.create.clear()
exports.default.mixin.Mixin.create.popObject()
exports.default.mixin.Mixin.create.shiftObject()
...

因此,我得到了这些听起来很奇怪的错误并且难以调试错误,因为属性的删除发生在它实际导致错误之前。

这是我对 hacky 序列化器的错误,但我希望这对你们中的一些人在遇到同样的错误时有所帮助。

关于javascript - 升级 ember-cli 后的 ember-cli "TypeError: desc.get is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30646466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com