在我的應用我有Course
和TeamMember
模式,讓每個團隊成員都可以爲幾門課程負責:迭代通過DS.hasMany
FrontApp.TeamMember = DS.Model.extend({
name: DS.attr('string'),
email: DS.attr('string'),
image: DS.attr('string'),
courses: DS.hasMany('course', {async: true})
});
FrontApp.Course = DS.Model.extend({
title: DS.attr('string'),
...
bunch of other model-specific fields (no relations)
...
ects: DS.attr('number')
});
現在我要顯示的個人資料頁上的以下:
is responsible for COURSE_TITLE_1, COURSE_TITLE_2
如果他是負責< = 2個療程is responsible for COURSE_TITLE_1, COURSE_TITLE_2, ...
如果他是負責> 2個療程
目前,我嘗試這樣做,從itemController:
FrontApp.TeamMemberController = Ember.ObjectController.extend({
responsibleForCourses: function(){
var res = "";
this.get('courses').then(function(loaded_courses){
if (loaded_courses.get('length') <= 2) {
loaded_courses.forEach(function(course){
res += course.get('title') + " | ";
})
} else {
// access first two of loaded_courses here and add "..."
}
console.log(res); // this thing works
})
return res; // but here it does not work
}.property('courses')
});
由於model.courses
是一個承諾,我不得不使用.then()
,但是這引起了以下問題:我怎麼回我res
和將其顯示在我的模板中?
順便說一句,我的模板看起來是這樣的:
responsible for courses: {{responsibleForCourses}}
在此先感謝您的幫助。
附:我開始認爲我試圖以錯誤的方式做到這一點:也許我應該使用視圖或其他用於此目的... – VoloD