我想在同一页面上呈现事件和约会。但是,当我使用AppointmentController中的需求 api来访问EventsController时,我可以看到它在检查时返回了“事件控制器内容属性”内的约会。但是,当我尝试使用包含“约会”的返回内容来获取约会时,它失败了。我正在使用 eventAppt = this.get('controllers.events').get('model');在AppintmentsController中获取事件内容 它获取内容并且此返回的内容具有“约会”作为其数据的一部分,但是当我尝试使用以下命令获取返回内容数据中的约会列表时:eventAppt.get('appointments'); this.set('content', myApppoint); ,它总是失败,无法调用 undefined 的方法 'indexOf'。
jsfiddle _
App.AppointmentsController = Em.ArrayController.extend({
needs: ['events'],
appoint: function(){
console.log("this: ", this.toString());
var eventAppt = this.get('controllers.events').get('model');
//This returns the correct data that includes 'appointments'
console.log(eventAppt);
var myAppoint= eventAppt.get('appointments');
this.set('content', myAppoint);
//This fails with 'Cannot call method 'indexOf' of undefined'
console.log(this.get(myAppoint));
}
});
事件控制器
App.EventsController = Em.ArrayController.extend({
});
该模型:
App.Event = DS.Model.extend({
title: DS.attr('string'),
start: DS.attr('date'),
allDay: DS.attr('boolean'),
appointments: DS.hasMany('App.Appointment')
});
有谁知道为什么这不起作用。