2017-05-24 4 views
5

Ich verwende eckige 1.6 für mein Projekt und eckige-ui-Routing für das Routing mit PugJs für HTML-Vorlagen. Ich versuche Lazyload in meiner Anwendung zu implementieren, aber irgendwie funktioniert es nicht wegen Jade. Code:Controller ist in DOM geladen, aber die Ansicht nicht geladen und kann nicht gefunden Controller-Oclazyload mit Jade (PUGJS)

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'] 
       }) 
      }] 
     } 
    }) 

Controller:

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

und auf dem Frontend-I-Knoten verwenden diese Jade in HTML zu konvertieren, so dass, wenn 'templateUrl' durch Routing-Dienste zugegriffen wird es so weit umgeleitet würde code:

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

Dies lädt die example.jade in Sicht. [: Ctrlreg $ controller] Der Controller mit dem Namen 'exampleCtrl' registriert ist nicht ich diese

in der Konsole immer bin.

Auch nachdem Controller-Datei in DOM geladen ist und auch nicht anzeigen wird. jede Hilfe in Bezug auf das Problem wurde begrüßt. Danke

+0

Können Sie bitte StackSnippet/Plnkr/JSFiddle mit minimalem Code das Problem zu reproduzieren erstellen. – Tushar

+0

Sure @Tushar wird in Kürze aktualisiert !! –

+0

Aus dem bereitgestellten Code ist das schwer zu ersehen, aber stellen Sie sicher, dass Ihre Entschlossenheit ein Versprechen zurückgibt. Vielleicht sehen Sie, ob es rendert, wenn Sie die Auflösung insgesamt entfernen. – frikkievb

Antwort

4

Nach zu viel Suche und versuchen, ich habe die Lösung gefunden, das Problem war globale Variable für das Modul beim Aufbau Controller. Statt

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

verwendet, um I angular.module('myApp').controller(,,,);

Referenz: ocLazyLoad Issues

1

Ich denke, du solltest das ein bisschen anders machen. Versuchen Sie folgendes:

+0

versuchte das bereits! –

+2

Geben Sie alle Code-Barbecue dieser funktioniert. Ich denke du hast woanders ein Problem (double check paths). Ich bin mir nicht sicher, dass 'files: ['js/*']' eine gültige Deklaration ist. –

Verwandte Themen