1

嘿,你们都在我的 ember 代码中遇到了最奇怪的问题。(1.0-pre4)

这个看似无害的代码根本没有按预期工作:

a = Ember.Controller.create({ 
        hello: function(){ 
            return "hello"; 
        }.property() 
    } )

当我这样做时,它a.get("hello")不会返回hello,而是返回一个函数!

这是一个转储:

i
_cacheable: true
_dependentKeys: Array[0]
func: function (){ return "hello"; }
__proto__: Ember.Descriptor

在车把模板中,它显示为[object Object]

我绝不是一个经验丰富的 Ember 程序员。但我很确定这曾经以不同的方式工作。有什么改变吗?

但是,我注意到当我调用a.hello.func()then 时会返回hello

这绝对没有任何意义。我可能做错了什么,或者Ember有问题吗?

任何帮助表示赞赏。我知道这个问题与其他一些问题相似,但我没有其他方法可以在其他人的答案中以一种有凝聚力的方式记下我的所有信息。

编辑:我想我知道问题是什么。你不能在“创建”函数中指定计算属性。将首先尝试“扩展”并报告!

4

1 回答 1

3

从 ember 1.0.0-pre.3 开始,您不能再通过Object.create(). 在大多数情况下你应该使用extend,但如果你需要旧的行为可以使用createWithMixins()

也可以看看:

https://github.com/emberjs/ember.js/commit/c1c720781c976f69fd4014ea50a1fee652286048

Ember.Object.create 不再支持定义调用 _super 的方法

于 2013-02-07T17:16:11.193 回答