web-dev-qa-db-fra.com

Déclaration de directive templateUrl relative à la racine

Je déclare actuellement templateUrl par rapport à l'emplacement actuel de la fenêtre.

cvApp.directive('personalDetails', function () {

    return {
        restrict: 'A',
        templateUrl: '../../Scripts/app/templates/personalDetails.html'
    };

});

Comment puis-je rendre templateUrl relatif à la racine de l'application? Je cherche quelque chose comme ça:

templateUrl: '~/Scripts/app/templates/personalDetails.html'

AngularJS peut-il accomplir cela?

58

On dirait que c'est supporté. Extrait d'un fil de discussion sur AngularJS Google Group :

l'url avec le préfixe "/" est relatif au domaine, sans le "/" préfixe, il sera relatif à la page principale ("index.html") ou à l’URL de base (si vous utilisez location en mode html5).

Cela fonctionne bien:

templateUrl: '/Scripts/app/templates/personalDetails.html'
81

On dirait que vous essayez de faire des chemins relatifs aux applications de style ASP.NET mais côté client. Le correctif est en fait en HTML: ajoutez une balise de base dans la tête, comme ceci:

<base href="<%= Request.ApplicationPath %>" />

Ensuite, gardez vos chemins de gabarit relatifs à cela, comme dans

templateUrl: 'Scripts/app/templates/personalDetails.html'
15
Barnabas Kendall

Utilisez '././Scripts/app/templates/personalDetails.html'

cela a fonctionné pour moi.

3
Rajat Faujdar

angular 4 utilise webpack en tant que liant. 

./ means relative path to current folder



../ means parent folder

domaine = src

root = src/index

par exemple, sous le fichier app.component.ts, url signifie que xxx.html xxx.css se trouvent dans le même dossier que xxx.ts.

./ is relative path as current folder

../ is relative path as parent folder

@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
})

CHEMINS RELATIFS AUX COMPOSANTS EN ANGULAIRE

0
hoogw