问题如题。延迟加载进controller文件后,controller提示不存在。
贴代码:
state:
//state
$stateProvider.state('user.performance', {
url: '/performances',
views: {
'': {
controller: 'PerformanceCtrl',
templateUrl: 'tpl/user/performance'
}
},
resolve:{
loadPerformanceCtrl: ["$ocLazyLoad", function ($ocLazyLoad) {
return $ocLazyLoad.load('/app/performance/performance.js');//js文件有成功加载进来
}]
}
})
performance.js
;(function () {
'use strict';
myApp.controller('PerformanceCtrl', [
'$scope',
'PerformanceService',
function ($scope, PerformanceService) {
console.log('PerformanceCtrl');
//...
])
})();
// myApp 在此前加载的js中已经定义过。var myApp = angular.module('zwb', []);
报错: Argument 'PerformanceCtrl' is not a
習慣沉默2017-05-15 17:12:08
いじってみたら次のことが分かりました:
新しいモジュールを作成すると、次のように $ocLazyLoad.load()
が登録されたコンポーネントを正常にロードします$ocLazyLoad.load()
加载进来的component registered成功,如下
angular.module('testtest', []).controller('PerformanceCtrl', [
//...
])
由上边,我想到angular的另一个点,当module不带参时是getter,所以尝试如下:
angular.module('order').controller('PerformanceCtrl', [
//...
])
ocLazyLoad debug 提示ocLazyLoad.moduleReloaded order
リーリー
ocLazyLoad.moduleReloaded order
を要求し、パフォーマンス中のコンポーネントがロードされ、登録が成功するようにします。 🎜
🎜私は長い間苦労しており、angularの理解とコンポーネントの導入の慣れがまだ十分ではありません。 G_Koala_C さんの回答ありがとうございます、ありがとうございます~🎜PHPz2017-05-15 17:12:08
ルート解決は通常、現在の状態で使用されるデータをプリロードし、データがロードされた後にページをロードします。あなたの状況では、遅延ロードする必要はまったくありません。エラーがどこにあるのかわかりません。おそらく 2 つのタイプがあります:
1。役に立たない遅延読み込みを削除します。
2、ビューのコントローラーをloadPerformanceCtrlに変更し、resolveの名前が直接変更されました。機能するかどうかはわかりません。