我有灰燼數據模型:爲什麼我的Ember計算屬性hasMany關係不更新?
export default DS.Model.extend({
name: DS.attr('string'),
friends: DS.hasMany('friend',{async:true}),
requestedFriendIds: Ember.computed('friends',function(){
return this.get('friends').then(function(friends){
return friends.filterBy('status','Requested').mapBy('id');
});
})
});
我有一個使用它的路線設置:
export default Ember.Route.extend({
model: function(params){
return Ember.RSVP.hash({
memberProfile:this.store.find('member-profile', params.memberprofile_id).then(function(memberProfile)
{
return Ember.RSVP.hash({
requestedFriendIds:memberProfile.get('requestedFriendIds'),
UserId:memberProfile.get('user.id'),
Id:memberProfile.get('id')
});
}),
});
}
});
},
和利用的路由模式htmlbars。我計算的屬性始終正確地叫上一重裝,但不會刷新用戶動作「添加好友」,通過把一個朋友改變了存儲和profile.friends'記錄是這樣的:
actions:
{
addFriend:function(profile_id,)
{
this.store.findRecord('member-profile',memberProfile).then(function(member){
var friend = this.store.createRecord('friend',
{
member:member,
status:'Requested',
timestamp: new Date(),
});
friend.save();
member.get('friends').pushObject(friend);
member.save();
}.bind(this));
}
}
一些注意事項:我已經在「朋友」,「朋友。[]'上嘗試過計算的屬性。我的代碼基礎是Ember 2.0.1,Ember.Data 1.13.12,因此不推薦使用「friends。@ each」。底層數據在後備存儲(EmberFire)中正確更新。我已經調試到EmberData,我看到屬性更改通知失效代碼被調用。這只是選擇的代碼...
我錯過了什麼......?有沒有更好的方法來解決這個問題?
我相信你想在CP上觀看'friends。@ each'。 – sbatson5
@each在Ember 2中已棄用。*。我會更新我的問題。 – tillerstarr
只看「朋友。@每個」並不是它的設計目的。它應該是'朋友。[]'肯定。 –