2014-06-10 2 views
0

Simple-Auth 라이브러리를 사용하여 Ember-cli 앱을 만들고 있습니다. 현재 시스템 설정은 initializers 폴더에서 인스턴스화 된 initializer로 기본입니다. 이니셜의 이름은 오류가 Embjs Simple-Auth - 정의되지 않은 'name'속성을 읽을 수 없습니다.

덕분에 도움을

정의되지 않은 업데이트의 특성 '이름'추적

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) 
을 읽을 수 없습니다 반환

/*initializers/initializer-application.js*/ 

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

export default ApplicationInitializer; 

이며, 자세한 정보가 필요한 경우, 확실히 공급할 것입니다.

업데이트 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 

답변

2

Ember.Application.initializer는 그것이 이니셜 객체를 반환하지 않습니다 즉, 초기화를 수행하는 실제 기능입니다 - 실제로는 undefined를 반환 (없는이니셜 클래스있다 어쨌든 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**/ 
    }); 
...