既存の Ember.js プロジェクトを移行して使用しようとしましたが、Ember App Kit
ここでは発生しないと思われる奇妙なエラーが表示されます...
アプリを起動すると、すべてが初期化され、ユーティリティ クラスが起動して実行され、Ajax リクエストが送受信されます。すべて問題ないようです。しかし、その後、同じエラーが何度も発生し続けます。
Uncaught TypeError: Cannot read property 'name' of undefined
StackTrace をたどると、エラーがのupdatePaths()
関数で発生することがわかりましたRouter
(コードが失敗し始める行にコメントしました:
function updatePaths(router) {
var appController = router.container.lookup('controller:application');
if (!appController) {
// appController might not exist when top-level loading/error
// substates have been entered since ApplicationRoute hasn't
// actually been entered at that point.
return;
}
var infos = router.router.currentHandlerInfos, // <-- empty Array ([])
path = Ember.Router._routePath(infos); // <-- empty String ("")
if (!('currentPath' in appController)) {
defineProperty(appController, 'currentPath');
}
set(appController, 'currentPath', path);
if (!('currentRouteName' in appController)) {
defineProperty(appController, 'currentRouteName');
}
set(appController, 'currentRouteName', infos[infos.length - 1].name); // throws Uncaught TypeError: Cannot read property 'name' of undefined
}
スタックトレースは次のとおりです。
Uncaught TypeError: Cannot read property 'name' of undefined ember.js:35015
updatePaths ember.js:35015
Ember.Router.Ember.Object.extend.intermediateTransitionTo ember.js:34522
(anonymous function) ember.js:34919
forEachRouteAbove ember.js:34869
defaultActionHandlers.loading ember.js:34915
triggerEvent ember.js:34983
trigger ember.js:34116
Transition.trigger ember.js:33952
Ember.Router.Ember.Object.extend._fireLoadingEvent ember.js:34750
DeferredActionQueues.flush ember.js:5893
Backburner.end ember.js:5984
Backburner.run ember.js:6023
Ember.run ember.js:6426
runInitialize ember.js:39637
jQuery.Callbacks.fire jquery.js:3063
jQuery.Callbacks.self.fireWith jquery.js:3175
jQuery.extend.ready jquery.js:3381
completed jquery.js:3397
また、appController
は のインスタンスではなく、ApplicationController
ember 自体から生成されたコントローラーのようで、理由がわかりません (myは...ApplicationController
で定義されています)。app/controllers/application.js
誰かがこの動作について何か知っているか、このエラーを追跡するための正しい方向を教えてくれますか?