【问题标题】:RangeError: Maximum call stack size exceeded when trying to get a route modelRangeError:尝试获取路由模型时超出了最大调用堆栈大小
【发布时间】:2015-01-20 12:02:58
【问题描述】:

我正在使用 Ember CLI 构建系统构建 Ember webapp。尝试从服务器 API 获取所有计划时出现以下错误。知道是什么原因造成的吗?

堆栈跟踪:

Error while processing route: index Maximum call stack size exceeded RangeError: Maximum call stack size exceeded
    at new Boolean (native)
    at Boolean.toString (native)
    at Object.typeOf (http://website.com/assets/vendor.js:32058:86)
    at Object.Ember.assert (http://website.com/assets/vendor.js:17478:17)
    at get (http://website.com/assets/vendor.js:29793:13)
    at __exports__.default.Mixin.create.get (http://website.com/assets/vendor.js:45505:16)
    at Ember.DefaultResolver.extend.findModuleName (http://website.com/assets/vendor.js:72622:12)
    at resolveOther (http://website.com/assets/vendor.js:72487:37)
    at superWrapper (http://website.com/assets/vendor.js:31677:22)
    at __exports__.default.EmberObject.extend.resolve (http://website.com/assets/vendor.js:17216:27)

在为 index 路由加载模型时会发生这种情况。当我不加载模型时,一切正常。

routes/index.js:

import Ember from 'ember';

export default Ember.Route.extend({

    renderTemplate: function(){
            this.render('index-unsubscribed');
    },

    model: function() {
            return this.store.find('plan'); // if I comment this line, works fine
    }
});

router.js sn-p:

Router.map(function() {
  this.route('index',           {path: '/'});
});

适配器/application.js:

import DS from 'ember-data';

export default DS.Store.extend({
  revision: 1,
  adapter: DS.RESTAdapter.extend({
    namespace: 'api'
  })
});

app.js:

import Ember from 'ember';
import Resolver from 'ember/resolver';
import loadInitializers from 'ember/load-initializers';
import config from './config/environment';

Ember.MODEL_FACTORY_INJECTIONS = true;

var App = Ember.Application.extend({
  modulePrefix: config.modulePrefix,
  podModulePrefix: config.podModulePrefix,
  Resolver: Resolver
});

loadInitializers(App, config.modulePrefix);

export default App;

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    没关系,显然我扩展了存储和适配器,而不仅仅是 adapters/application.js 中的适配器。正确版本:

    import DS from 'ember-data';
    
    export default DS.RESTAdapter.extend({
      namespace: 'api'
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-19
      • 2015-03-15
      • 1970-01-01
      • 2018-07-11
      • 2018-01-24
      • 2018-02-06
      相关资源
      最近更新 更多