我正在尝试学习emberjs,并在计算属性部分的示例中偶然发现错误(www.emberjs.com,'导向'部分中的'运行中的计算属性'示例)。当我从浏览器的控制台调用ironMan.fullName()
时,它始终显示错误“属性'fullName'对象[object Object]不是函数” - 为什么会这样?
我的代码是:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.3/handlebars.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.0.0-rc.6/ember.min.js"></script>
<script>
App = Ember.Application.create();
App.Person = Ember.Object.extend({
// these will be supplied by `create`
firstName: null,
lastName: null,
fullName: function() {
return this.get('firstName') + ' ' + this.get('lastName');
}.property('firstName', 'lastName')
});
var ironMan = App.Person.create({
firstName: "Tony",
lastName: "Stark"
});
</script>
同样在jsbin:http://jsbin.com/UnevOVU/3/edit
答案 0 :(得分:1)
此错误告诉您ironMan.fullName
不是函数,无法使用()
调用。这是因为fullName
是计算属性对象,而不是函数。您可以使用指南中此代码示例正下方显示的代码访问其值:
ironMan.get('fullName') // "Tony Stark"