Ember数据-类型错误:对象没有方法'每个关系'

Ember Data - TypeError: Object has no method 'eachRelationship'

本文关键字:关系 有方法 数据 类型 错误 对象 Ember      更新时间:2023-09-26

因此,我尝试在我的Ember应用程序中使用来自API端点/categories的数据和Ember数据动态构建路由。为了做到这一点,我在模型中添加了一个didLoad方法,该方法由控制器调用并设置为该控制器的属性。我把路线映射到我的路由器,所有这些都很好。当我试图设置一个控制器,该控制器的内容属性由findQuery从服务器检索的数据设置时,真正的问题就开始了。

这就是错误:

TypeError {} "Object /categories/548/feeds has no method 'eachRelationship'"

这是代码:

window.categoryRoutes = [];
App.Categories = DS.Model.extend({
  CATEGORYAFFINITY: DS.attr('boolean'),
  CATEGORYID: DS.attr('number'),
  CATEGORYNAME: DS.attr('string'),
  CATEGORYLINK: function () {
    var safeUrl = urlsafe(this.get('CATEGORYNAME'));
    categoryRoutes.push(safeUrl);
    return safeUrl;
  }.property('CATEGORYNAME'),
  didLoad: function () {
    var categoryLink = this.get('CATEGORYLINK');
    var categoryId = this.get('CATEGORYID');
    App.Router.map(function () {
      this.resource(categoryLink, function () {
        // some routes
      });
    });
    App[Ember.String.classify(categoryLink) + 'Route'] = Ember.Route.extend({
      setupController: function(controller, model) {
        // source of error
        this.controllerFor(categoryLink).set(
          'content',
          this.store.findQuery('/categories/' + categoryId + '/feeds', {
            appid: 'abc123def456',
            lat: 39.75,
            long: -105
          })
        );
      }
    });
  }
});

任何"哈尔普"都将不胜感激!

此外,如果我这样做完全错了,而且有一种更像Ember的方式可以做到这一点,我想知道。

我想明白了。我之所以出现此错误,是因为我在重写的某些自定义RESTAdapter代码中,从App.Helpers对象向提取方法传递了一个字符串,而不是一个真正的"类型"。

解决方案是使用我的自定义类型名称在App.Helpers中传递相应的模型帮助程序。

重写的RESTAdapter.serializer.extractMany方法中有类似的内容:

var reference = this.extractRecordRepresentation(loader, App.Helpers[root], objects[i]);