2017-01-06 5 views
0

Also diesen Fehler und ich versuche ich UI-Router Entschlossenheit Methode, um zu arbeiten, aber ich erhalte immer war nicht erfolgreich bei der Lösung dieses Problems. Error: No template configuration specified for '[email protected]'Angular 1.5 - Ui-Router 1.0.0-beta.3 - Keine Template-Konfiguration für ‚resolve @ root‘‘angegeben

meine hier stateProvider Definition:

$stateProvider 
    .state('root', { 
    abstract: true, 
    views: { 
     '[email protected]': { 
     template: '<div>Header</div>', 
     }, 
     '[email protected]': { 
     template: '<div>Footer</div>', 
     } 
    } 
    }) 

.state('root.home', { 
    views: { 
    '[email protected]': { 
     url: '/', 
     templateUrl: 'src/survey/survey.template.html', 
     controller: 'homeController' 
    }, 
    resolve: { 
     communityId: ['backendFactoryService', function (backendFactoryService) { 
      backendFactoryService....then(function (res) { 
       return res; 
      }) 
     }], 
     brandingId: ['backendFactoryService', function (backendFactoryService) { 
      // do stuff 
      }) 
     }], 
     community: ['backendFactoryService', function (backendFactoryService) { 
        // do stuff 
      }) 
     }], 
     branding: ['backendFactoryService', function (backendFactoryService) { 

        // do stuff 
      }) 
     }] 
    } 
    } 
}) 

In meinem home.controller.js

(function() { 
    'use strict' 

    angular.module('someModule') 
    .controller('homeController', homeController) 

    homeController.$inject = [ 
    '$scope', 
    'branding', 
    'brandingId', 
    'community', 
    'communityId' 
    ]; 

    function homeController(
    $scope, 
    branding, 
    brandingId, 
    community, 
    communityId 
) { 
    $scope.community = community; 
    $scope.branding = branding; 
    $scope.brandingId = brandingId; 
    $scope.communityId = communityId; 
    } 
})(); 

Offensichtlich habe ich einen templateUrl für die Steuerung und Entschlossenheit Block. Ich habe versucht, eine leere <div ui-view=""></div> oder <ui-view></ui-view> für meine Root-Zustand, aber nichts hinzuzufügen. Ich kann keine Antwort für den Fehler finden, den ich bekomme, hoffentlich kann mir hier jemand helfen.

EDIT:

Ich habe auch versucht, ein template: ' ' in meinem root Zustand hinzuzufügen. Kein Unterschied.

Antwort

0

Fehler ist wegen

resolve: { 
    communityId: ['backendFactoryService', function (backendFactoryService) { 
     backendFactoryService....then(function (res) { 
      return res; 
     }) 
    }], 
    brandingId: ['backendFactoryService', function (backendFactoryService) { 
     // do stuff 
     }) 
    }], 
    community: ['backendFactoryService', function (backendFactoryService) { 
       // do stuff 
     }) 
    }], 
    branding: ['backendFactoryService', function (backendFactoryService) { 

       // do stuff 
     }) 
    }] 
} 

wie es denkt, dass resolve Ansicht Name ist und es für eine Vorlage prüft, Controller usw.

So Ihr Zustand Konfigurationscode

.state('root.home', { 
    resolve: { 
    communityId: ['backendFactoryService', function (backendFactoryService) { 
     backendFactoryService....then(function (res) { 
      return res; 
     }) 
    }], 
    brandingId: ['backendFactoryService', function (backendFactoryService) { 
     // do stuff 
     }) 
    }], 
    community: ['backendFactoryService', function (backendFactoryService) { 
       // do stuff 
     }) 
    }], 
    branding: ['backendFactoryService', function (backendFactoryService) { 

       // do stuff 
     }) 
    }] 
    }, 
    views: { 
    '[email protected]': { 
     url: '/', 
     templateUrl: 'src/survey/survey.template.html', 
     controller: 'homeController',   
    } 
    } 
}) 
zu

ändern
+0

ah dummer Fehler, ich machte die Lösung ein separates Objekt außerhalb der Ansichten. Vielen Dank @Mr_Perfect – Diego

+0

Ich weiß, dass es außerhalb des Bereichs dieser Frage ist, aber jetzt, wenn ich diese Variablen (zB Branding, Community etc ..) in meinem Controller injiziere, bekomme ich auch einen 'Fehler: [$ injector: unpr]' , das sollte nicht richtig sein? – Diego

+0

ändern '[ 'backendFactoryService', function (backendFactoryService) { // Sachen tun }) }] 'auf' Funktion (backendFactoryService) { // Sachen tun } '. Keine Notwendigkeit, in Array-Format zu injizieren. Dienste stehen zur Verfügung, um das Eigentum aufzulösen. Lass es mich wissen, wenn es funktioniert –