2017-05-24 11 views
5

내 프로젝트에는 각도 1.6을 사용하고 HTML 템플릿에는 PugJ로 라우팅하기 위해 각도 Ui 라우팅을 사용하고 있습니다. 내 응용 프로그램에서 Lazyload 구현하려고하지만 어떻게 든 작동하지 않을 수 있습니다 비취 때문일 수 있습니다. 코드 :컨트롤러가 DOM에로드되었지만보기가로드되지 않아 jade (pugjs)가 포함 된 컨트롤러 -oclazyload를 찾을 수 없습니다.

var app = angular.module('myApp',['ui.router','oc.lazyLoad']); 
app.config(['$ocLazyLoadProvider', function($ocLazyLoadProvider 
{ 
    $ocLazyLoadProvider.config({ 
    debug: true, 
    modules: [{ 
    name: 'js', 
    files: ['js/*'] 
}] 
}); 
}]); 

.state("exampleState", { 
     url: '/example', 
     templateUrl: '/example', 
     controller:'exampleCtrl', 

     resolve: { 
      deps: ['$ocLazyLoad', function($ocLazyLoad) { 
       return $ocLazyLoad.load({ 
        files: ['/js/exampleCtrl.js'] 
       }) 
      }] 
     } 
    }) 

컨트롤러 :

app.controller('exampleCtrl',function($scope){ 
    console.log('controller loaded'); 
}); 

내가 HTML에이 옥을 변환하는 노드를 사용하고있는 프론트 엔드, 'templateUrl는'라우팅 서비스로 액세스 할 때 그래서이로 리디렉션 될 것이다에 코드 :

app.get('/example', function(req, res) { 
    res.render('/example'); 
}); 

보기에서 example.jade를로드합니다. 내가 콘솔에서

이 무엇입니까 [$ 컨트롤러 : ctrlreg] 이름이 'exampleCtrl'와 컨트롤러가 등록되어 있지 않습니다.

컨트롤러 파일을 DOM에로드 한 후에도보기가 렌더링되지 않습니다. 문제에 관한 도움을 환영합니다. 고마워요

+0

문제를 재현하는 대신

app.controller('exampleCtrl',function($scope){ console.log('controller loaded'); }); 

를 사용하는 나는 angular.module('myApp').controller(,,,);

참조를 사용했다. – Tushar

+0

물론 @Tushar가 잠시 후에 업데이트 될 것입니다! –

+0

제공된 코드를 사용하기가 어렵지만 약속 한 사항이 반환되는지 확인하십시오. 해결 방법을 모두 제거하면 렌더링되는지도 알 수 있습니다. – frikkievb

답변

4

너무 많은 검색을 시도한 후 해결책을 찾았습니다. 문제는 컨트롤러를 구성 할 때 모듈에 대한 전역 변수였습니다. 당신이 최소한의 코드로 StackSnippet/Plnkr/JSFiddle를 만드십시오 수 ocLazyLoad Issues

1

나는 약간 다른해야한다고 생각합니다. 이것을 시도하십시오 :

+0

이미 시도했습니다! –

+2

코드 바베큐 모든 코드를 제공합니다. 다른 곳에서는 문제가 있다고 생각합니다 (이중 체크 경로). 'files : [ 'js/*']'가 유효한 선언인지 확신 할 수 없습니다. –