angular.js - ocLazyLoad配合ui-router延迟加载controller,controller提示 not a
某草草
某草草 2017-05-15 17:10:08
0
2
530

问题如题。延迟加载进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

某草草
某草草

全員に返信(2)
習慣沉默

いじってみたら次のことが分かりました:

  • 新しいモジュールを作成すると、次のように $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 デバッグは ocLazyLoad.moduleReloaded order を要求し、パフォーマンス中のコンポーネントがロードされ、登録が成功するようにします。 🎜 🎜私は長い間苦労しており、angularの理解とコンポーネントの導入の慣れがまだ十分ではありません。 G_Koala_C さんの回答ありがとうございます、ありがとうございます~🎜
いいねを押す +0
PHPzhong

ルート解決は通常、現在の状態で使用されるデータをプリロードし、データがロードされた後にページをロードします。あなたの状況では、遅延ロードする必要はまったくありません。エラーがどこにあるのかわかりません。おそらく 2 つのタイプがあります:
1。役に立たない遅延読み込みを削除します。
2、ビューのコントローラーをloadPerformanceCtrlに変更し、resolveの名前が直接変更されました。機能するかどうかはわかりません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート