2014-06-10 13 views
0

我正在使用Simple-Auth庫構建Ember-cli應用程序。目前的系統設置是基本的,只有初始化器在初始化器文件夾中實例化。初始化的名字是Embjs Simple-Auth - 無法讀取未定義的屬性'name'

/*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 

回答

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**/ 
    }); 
... 
相關問題