Embjs Simple-Auth - 无法读取undefined的属性“name”

时间:2014-06-10 17:38:54

标签: ember.js ember-simple-auth

我正在使用Simple-Auth库构建Ember-cli应用程序。当前系统设置是基本的,只有初始化器在initializers文件夹中实例化。初始化程序的名称是

/*initializers/initializer-application.js*/

var ApplicationInitializer = Ember.Application.initializer({
    name: 'authentication',
    initialize: function(container, application) {
        Ember.SimpleAuth.setup(container, application);
    }
});

export default ApplicationInitializer;

错误正在返回无法读取未定义的属性“名称”

更新跟踪

Uncaught TypeError: Cannot read property 'name' of undefined commandcenter.js:54876
Ember.Application.reopenClass.initializer commandcenter.js:54876
(anonymous function) commandcenter.js:58229
default commandcenter.js:58226
(anonymous function) commandcenter.js:110
requireModule commandcenter.js:54
(anonymous function)

感谢您的帮助,如果需要更多信息,肯定会提供。

更新2

;(function() {
define("ember/load-initializers",
  [],
  function() {
    "use strict";

    return {
      'default': function(app, prefix) {
        var initializersRegExp = new RegExp('^' + prefix + '/initializers');

        Ember.keys(requirejs._eak_seen).filter(function(key) {
          return initializersRegExp.test(key);
        }).forEach(function(moduleName) {
          var module = require(moduleName, null, null, true);
          if (!module) { throw new Error(moduleName + ' must export an initializer.'); }
          app.initializer(module['default']);
        });
      }
    }
  }
);
})();


var module = require(moduleName, null, null, true);
//Is returning module.default = undefined 

1 个答案:

答案 0 :(得分:2)

Ember.Application.initializer是执行初始化的实际函数,即它不会返回 Initializer 对象 - 事实上它返回undefined(其中' s无论如何,没有 初始化程序类在Ember中)。

导出原始对象:

/*initializers/initializer-application.js*/

export default {
    name: 'authentication',
    initialize: function(container, application) {
        Ember.SimpleAuth.setup(container, application);
    }
};

同时检查ember-load-initializers.js

...
    }).forEach(function(moduleName) {
      var module = require(moduleName, null, null, true);
      if (!module) { throw new Error(moduleName + ' must export an initializer.'); }
      app.initializer(module['default']); /**this is where the initializer is actually run**/
    });
...