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

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

某草草
某草草

membalas semua(2)
習慣沉默

Saya bermain-main dengannya dan mendapati:

  • Apabila saya mencipta modul baharu, $ocLazyLoad.load() memuatkan komponen yang didaftarkan dengan jayanya, seperti berikut$ocLazyLoad.load()加载进来的component registered成功,如下

angular.module('testtest', []).controller('PerformanceCtrl', [
    //...
])
  • 由上边,我想到angular的另一个点,当module不带参时是getter,所以尝试如下:

angular.module('order').controller('PerformanceCtrl', [
    //...
])

ocLazyLoad debug 提示ocLazyLoad.moduleReloaded order rrreee

Daripada perkara di atas, saya memikirkan satu lagi titik dalam sudut Apabila modul tidak mengambil parameter, ia adalah pengambil, jadi cuba yang berikut: 🎜 rrreee 🎜ocLazyLoad debug menggesa ocLazyLoad.moduleReloaded order, supaya komponen dalam prestasi dimuatkan dan daftar berjaya. 🎜 🎜Saya telah bergelut untuk masa yang lama, dan pemahaman saya tentang sudut dan kebiasaan dengan memperkenalkan komponen masih belum mencukupi. Terima kasih atas jawapan G_Koala_C, terima kasih~🎜
PHPzhong

Keazaman penghalaan biasanya pramuat data yang digunakan oleh keadaan semasa, dan kemudian memuatkan halaman selepas data dimuatkan. Dalam keadaan anda, tidak perlu memuatkan malas. Saya tidak tahu di mana kesilapan anda mungkin terdapat dua jenis:
1 Alih keluar pemuatan malas, yang tidak berguna.
2 Tukar pengawal dalam paparan kepada loadPerformanceCtrl, dan selesaikan telah dinamakan semula secara langsung. Tidak pasti sama ada ia berfungsi.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan