Javascript 余烬数据模型数组不';我不总是有数据

Javascript 余烬数据模型数组不';我不总是有数据,javascript,arrays,ember.js,ember-data,Javascript,Arrays,Ember.js,Ember Data,第一次建立一个余烬应用程序,我有困难与我的模型没有解决 我有一组课程模型,每个模型都有一组用户模型(hasMany,with async:true) 当我加载页面时,我看到所有API请求都是正确的(即客户端正在为阵列中的所有用户发出请求),当我记录课程模型时(即当我记录console.log(course)),我看到控制台中的数据。但是,当我执行类似于course.get('admins')的操作时,数组是空的 课程不是需要所有这些信息的控制器的模型(这可能是发生这种情况的原因吗?),因此我将“

第一次建立一个余烬应用程序,我有困难与我的模型没有解决

我有一组课程模型,每个模型都有一组用户模型(hasMany,with async:true)

当我加载页面时,我看到所有API请求都是正确的(即客户端正在为阵列中的所有用户发出请求),当我记录课程模型时(即当我记录
console.log(course)
),我看到控制台中的数据。但是,当我执行类似于
course.get('admins')
的操作时,数组是空的

课程不是需要所有这些信息的控制器的模型(这可能是发生这种情况的原因吗?),因此我将“课程”控制器放在
needs
数组中

最后是这样的:

var course = this.get('controllers.course').get('model'); // this is OK, has data
var admins = course.get('admins'); // this is not OK, has no data!
var CourseModel = DS.Model.extend({
  admins: DS.hasMany('user', {
    async: true
  })
});
即使我尝试了以下方法:

course.get('admins').then(function (admins) {
    console.log(admins);
});
还是没有数据!我做错了什么

以下是更多相关代码:

var VideoDiscussionController = Ember.Controller.extend({
    needs: ['course'],

    submitComment: function () {
        var user = this.get('session').get('currentUser'),
            admins = this.get('controllers.course').get('model').get('admins'), // this is empty!
            isAdmin = admins.isAny('id', user.get('id'));

        var video = this.get('model'),
            text = this.get('commentText'),
            seconds = this.player.getCurrentTime() : 0,
            comment = this.store.createRecord('comment', {
                video: video,
                text: text,
                seconds: seconds,
                author: user,
                isAdmin: isAdmin
            });

        // POST comment
        comment.save();

        // Clear textbox
        this.set('commentText', '');

        video.get('comments').pushObject(comment);
    }
});

我假设您的模型是这样的:

var course = this.get('controllers.course').get('model'); // this is OK, has data
var admins = course.get('admins'); // this is not OK, has no data!
var CourseModel = DS.Model.extend({
  admins: DS.hasMany('user', {
    async: true
  })
});
然后,如果您获得了课程模型实例,并且您获得了:

course.get('admins')
该行将触发询问用户的AJAX调用

您是否检查过是否调用了此类请求


如果没有,您能否提供更多的代码以便我们可以帮助您?

加载加载所有课程的页面时,会触发AJAX调用(即,我看到对/api/users/:userId的GET请求)。我会用更多的代码更新我原来的帖子
course.get('admins')
返回承诺,因此您必须将其与
一起使用。然后(function(admins){})
可能是响应/序列化程序的错误?您能否复制从服务器获得的json+序列化程序代码(如果有)?