Comment ajouter une balise style de la tête en utilisant angularjs directive
-
02-01-2020 - |
Question
Salut, je suis en permettant aux utilisateurs de spécifier s'ils souhaitent imprimer des rapports dans un paysage ou portrait format.
Je me demandais si il est possible d'ajouter ceci (voir ci-dessous) dans l'en-tête du document web à l'aide d'un angularjs directive?De cette façon, il va changer la taille d'impression, en fonction de la saisie de l'utilisateur.
<style>@media print{@page {size: landscape}}</style>
La solution
Cela dépend si vous allez être en utilisant cette fonctionnalité dans de nombreux endroits différents.Si vous avez seulement besoin une fois, puis une directive peut-être exagéré.
Vous pouvez simplement mettre
<style> @media print {@page { size: {{ orientation }} } }</style>
au sein de votre angulaire contrôleur, et de spécifier l'orientation sur le $scope.
À ma connaissance il n'y a pas besoin de l'étiquette de style à être dans la tête.
Autres conseils
Vous pouvez utiliser le ngStyle directive conditionnelle, d'appliquer le style css.Voir AngularJS ngStyle
.L'exemple à la fin du lien qui montre comment faire.
J'ai eu de caisse personnalisée de la feuille de style à la volée avec des Identifiants uniques, je l'ai fait bien travailler avec angularJS comme ceci :
<style type="text/css"
ng-bind="vm.css">
</style>
(notez l'utilisation de ng-bind
)
où vm.css ressemble à ça dans le contrôleur
vm.css = `#${$scope.id} { background-color: red; }`
Espérons que cette aide!