Javascript 余烬cli“;TypeError:desc.get不是函数;升级ember cli后

Javascript 余烬cli“;TypeError:desc.get不是函数;升级ember cli后,javascript,ember.js,ember-cli,Javascript,Ember.js,Ember Cli,在使用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") em

在使用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)
desc
的类型与我直接调用
u.gravatar
时的类型相同,因此我不太清楚为什么这个问题不再得到解决

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

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

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

ComputedPropertyPrototype.volatile()
ComputedPropertyPrototype.property()
exports.default.mixin.Mixin.create.clear()
exports.default.mixin.Mixin.create.popObject()
exports.default.mixin.Mixin.create.shiftObject()
...
因此,我得到了这些听起来奇怪的错误和难以调试的错误,因为属性的删除发生在它实际导致错误之前


这是我对黑客序列化程序的不好之处,但我希望这对你们中的一些人在遇到同样的错误时有所帮助。

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

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

ComputedPropertyPrototype.volatile()
ComputedPropertyPrototype.property()
exports.default.mixin.Mixin.create.clear()
exports.default.mixin.Mixin.create.popObject()
exports.default.mixin.Mixin.create.shiftObject()
...
因此,我得到了这些听起来奇怪的错误和难以调试的错误,因为属性的删除发生在它实际导致错误之前

这是我的坏与黑客序列化,但我希望这有助于你们中的一些人时,绊倒在相同的错误