Webpack: à l'aide d'exiger pour le gn-inclure
Je suis nouveau sur webpack et maintenant je l'utilise pour la première fois dans un de mes angulaire des projets.
Je veux utiliser le besoin de la fonction dans mon fichier html afin d'exiger le modèle pour une ng-inclure comme suit:
<div ng-include="require(./my-template.html)"></div>
Je sais qu'il existe des chargeurs comme ng-cache et ngtemplate, mais ils ne fonctionnent pas de la façon dont j'en ai besoin. Avec eux, j'ai d'exiger le modèle dans un js premier et que d'utiliser le nom de modèle dans mon fichier html.
Comment faire cela?
- Créer une directive est la façon la plus simple. Vous pouvez exiger la directive - sinon recherchez un chargeur
- stackoverflow.com/questions/30605266/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser webpack-requis-chargeur sur npm.
Dans votre app js ou module js ajouter un commentaire:
Et dans votre modèle, vous pouvez utiliser
Ngtemplate fonctionne très bien. Ng-cache fonctionne aussi.
Également noter qu'il n'est pas nécessaire pour un chemin relatif dans la
ng-include
directive parce que c'est pris en charge par l'ajout de la//@require
de commande à la tête de votre fichier d'entrée.Enfin, notez que vous devez utiliser des doubles et les guillemets simples pour obtenir ng-comprennent de travailler. Donc, si vous voulez faire
"'template-name.html'"
, pas"template-name.html"
, ou'template-name.html'
.Comment config chargeurs
loaders: ['ng-annotate','babel','required?import[]=angular']
appimport angular from 'angular'; ... //@require "./components/**/index.js" //@require "./views/**/*.html" ... angular.module('sep', requiresModules) .config(onConfig) .run(onRun);
Vous pouvez utiliser du code HTML de chargeur et d'angle $templateCache service
webpack chargeur config:
Une autre approche consisterait à transformer
my-template.html
dans un angulaire de la composante:En supposant que vous utilisez html-chargeur pour charger vos fichiers HTML (
loaders: {test: /\.html/, loader: 'html'}
), de définir un composantmyTemplate
dans votre module fichier JavaScript:Par la suite l'utiliser:
J'ai déjà posté ceci sur https://stackoverflow.com/a/34815472/833093 mais:
Pour l'activer, vous devez configurer le "relativeTo" paramètre, sinon votre modèle partiels chargés à "/home/nom d'utilisateur/chemin/vers/projet/chemin/vers/template/" (à Vérifier votre bundle.js vous avez probablement une fuite de votre nom d'utilisateur dans vos projets)
Puis dans votre code, faire un effet secondaire seulement besoin d':
Ensuite, vous pouvez charger le code html: