Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro tempo de execução

Olá, galera.

Estou fazendo uma SPA aqui e gostaria de uma ajuda pra resolver um problema com a controller que não consegue ser carregada por erro de tempo de execução.

$routeProvider.when('Aula1',
     {
        templateUrl: '/Idiomas/Aula.html',
        controller: 'MainController',
        resolve: {
            lazy: ['$ocLazyLoad', function ($ocLazyLoad) {
                return $ocLazyLoad.load({
                files: [                               
                    '/Content/Scripts/Esp1_U1_Act1.js',
                    '/Content/Scripts/Controllers/MainController.js'
                ]
            });
        }]
    }
})

Como podem ver, nesta routeProvider estou definindo que quando estiver na url Aula1 deve ser chamado a controller MainController. Usei o plugin ocLazyLoad para carregar arquivos js de acordo com o routeprovider, assim eu evito ter que carregar várias controllers na MasterPage. Basta ver que dentro de files eu encontro os scripts que desejo carregar. Pois bem, o ocLazyLoad está cumprindo o esperado e carregando os scripts, porém, está carregando a MainController antes do angular, fazendo com que esta não seja reconhecida. Um clássico erro de tempo de execução.

Alguém sabe como eu posso resolver isso?

Valeu. ;)

2 respostas
solução!

Nunca usei esse plugin ocLazyLoad. Sugiro que você poste essa dúvida no www.guj.com.br, por ser algo específico. Aliás, a probabilidade de ser respondida talvez seja maior. O que você pode tentar é ver se a versão mais nova desse plugin funciona.

Um outro ponto é: você realmente precisa do lazy loading? Você realizará requisições para o servidor extra e numa rede 3G a performance é horrível e vai comer a bateria do cara sem necessidade. Carregar tudo de primeira minificado e concatenado ainda é recomendado em SPA. Porém, se o carregamento inicial da sua aplicação está muito lento ao ponto de prejudicar a experiência do usuário, ai sim, eu me preocuparia em carregar assets sob demanda.