2016-08-01 22 views
0

Ich versuche, eine Komponente mit einer templateURL einzurichten, die bei einem Konfigurationsmodul ein relativer Pfad ist. Da es jedoch außerhalb eines Controllers ist, kann ich nicht herausfinden, wie in der Abhängigkeit der KonfigurationSetzen Sie die Komponente TemplateURL auf den konfigurierten Pfad.

app.config.js zu bringen:

angular.module('app.config', []) 
    .constant('config', { 
    TEMPLATES_URL: 'js_2/templates/', 
    COMPONENTS_URL: 'js_2/components/' 

})

nach Hause. app.js:

angular.module('home.app', ['rest.service', 'app.config']); 

home.component.js:

angular.module('home.app').component('home', { 
    /* HOW DO I INJECT THE 'config' DEPENDENCY */ 
templateUrl: config.TEMPLATES_URL + 'home.template.html', 
controller: ....}) 

Ich weiß, dass, wenn sie in einem Controller Injektion würde man einfach ‚config‘ injizieren und es verwenden, aber ich weiß nicht, wie diese

Danke

+0

Mögliches Duplikat von [Angular 1.5-Komponenten-Methode templateUrl + function] (http://StackOverflow.com/Questions/33841909/angular-1-5-component-method-templateurl-function) – estus

+0

Ich glaube nicht, dass Link gibt einen Weg, tatsächlich in die templateURL-Methode zu injizieren, tut es? Würdest du der gleichen Prozedur folgen templateUrl: ['config', function (....)] – pasquers

+0

Das ist richtig. Alle injizierbaren Funktionen in Angular werden auf die gleiche Weise aufgerufen (das Framework ruft sie mit der $ injector.invoke-Methode auf) und folgt demselben bekannten DI-Schema. Du kennst einen, du kennst sie alle. – estus

Antwort

0

zu einer Komponente zu tun, müssen Sie eine einrichten Funktion auf dem templateUrl, die Ihren Dienst und gibt die uRL einspritzt, wie folgt aus:

angular.module('fsad').component('fsadLeefloon', { 
    bindings: { 
     onChanges: '&?' 
    }, 
    templateUrl: function(appConstant){return appConstant.paths.modules.fsad + 'leefloon/fsad-leefloon.html'}, 
    controller: controller 
    }); 

auch dieses structure guide können Sie eine gute Komponente Stil eingerichtet helfen.