我一直在努力實現與軌道和燼標記,在此基礎上railscast:http://railscasts.com/episodes/382-tagging灰燼數據:觀察關聯模型
我設置了tagList
屬性,我會灰燼數據模型喜歡每次標籤的改變(使用以下方法setTagList
)中設置:
App.Post = DS.Model.extend({
tags: DS.hasMany('App.Tag'),
tagList: DS.attr('string'),
setTagList: function() {
if(this.get('tags.length')) {
var tagList = this.get('tags').map(function(tag) {
return tag.get('name');
}).join(', ');
this.set('tagList', tagList);
}
}.observes('isLoaded', 'tags', '[email protected]')
});
我遇到的第一個錯誤是:
Uncaught TypeError: Cannot call method 'send' of null
我認爲這是觀察tags
和[email protected]
的結果。我也讀過,可能有issues with observing nested properties。
其次,通過移除這些依賴離開.observes('isLoaded')
,下面的錯誤被拋出:
Uncaught Error: Attempted to handle event `materializingData` on <App.Post:ember283:1> while in state rootState. Called with undefined
這是由任何調用引起this.get('tags')
。
見JSBin:http://jsbin.com/iyoyax/7/edit
任何人都可以建議我怎麼可能會觀察到一個相關的模型設置在同一個模型的另一個屬性?
在此先感謝
我在這裏看到一些不尋常的東西。爲什麼你有'setTagList'觀察者?是否應該設置'tagList'屬性(目前沒有這樣做)?如果是這樣,爲什麼不使'tagList'成爲一個計算屬性? – mehulkar 2013-07-22 23:51:49
我已更新示例以包括設置tagList屬性。它不能是一個計算的屬性,因爲它是持久的(因此需要是一個'DS.attr') – 2013-07-24 20:28:14