2012-07-17 70 views
2

为什么此代码中的“fullName”函数执行两次?emberjs - 财产火灾两次

Person = Ember.Object.extend({ 
    // these will be supplied by `create` 
    firstName: null, 
    lastName: null, 
    fullName: function() { 
    console.log('Full name function...'); 
    var firstName = this.get('firstName'); 
    var lastName = this.get('lastName'); 
    return firstName + ' ' + lastName; 
    }.property('firstName', 'lastName') 
}); 

App.tom = Person.create({ 
    firstName: "Tom", 
    lastName: "Dale" 
}); 

App.UsersView = Ember.View.create({ 
    templateName: 'users', 
    users: [App.tom] 
}); 

在谷歌铬控制台后来:

App.tom.set('firstName', 'John') 

此输出登录两次。

+0

文本'全名功能'被打印两次 – mprcela 2012-07-18 06:32:01

回答

2

似乎是一个错误,确实是(增加了的jsfiddle来说明:http://jsfiddle.net/MikeAski/GRvgt/)...

的观点被重新描绘,和计算性能尚未缓存。 :-(

+0

通过更新到最新的ember,这被更正@see http://jsfiddle.net/Sly7/vpHth/ – 2012-07-17 18:50:31

+0

谢谢,这是一个错误,我只是再次测试它,它不是与稳定版本(目前0.9.8.1),但工作正常与最新版本的烬。 – mprcela 2012-07-18 06:51:23