Insertion de script dans le tempate

Hello,

Quel est la meilleur manière d’insérer un script “externe” dans le frontend ?

Pour mon cas, je souhaiterais utiliser angular-filter.

Tu parle dans un module ? Ou en faisant des modifications dans Gladys ?

oui pardon je n’ai pas précisé, dans un module.

Inspire-toi des modules existant, par exemple le module Gladys-kodi ( github.com/Time-Lords/gladys-kodi ), tu mets tes fichiers css/js dans le dossier assets, ensuite ils sont chargés automatiquement par Sails.js !

Donc je peux simplement copié angular-filter.min.js dans /assets/js et ca le charge directement ?

J’ai essayé mais je suis confronté à un problème dans l’injection de angular-filter dans mon module angular, je me suis inspiré de cela :

github.com/a8m/angular-filter:

[code]
angular
.module(‘app’,[‘angular-filter’])
.controller(‘myController’, myController);

myController.$inject = [‘myService’,‘roomService’, ‘$timeout’];[/code]

Mais ca ne fonctionne pas:

Error: [$injector] errors.angularjs.org/1.2.26/$inj … …blabla….

Je ne sais pas ce qui cloche.

Ah je comprends. Je ne sais pas si c’est possible en fait, il faut que je me renseigne.

Le problème là est que déjà :

  1. L’application angular est déjà définie ici : https://github.com/GladysProject/Gladys/blob/master/assets/js/app/app.module.js. Je ne sais pas si il est possible d’injecter des dépendances à posteriori.

  2. On n’est pas sur que la dépendance va être chargée par le loader automatique avant ton controller. ( le loader automatique injecte totalement arbitrairement les scripts dans un ordre plus ou moins aléatoire suivant plus ou moins l’ordre alphabétique ). Du coup si la dépendance est chargée après ton controller… ça marchera pas.

Voilà à peu près le problème que je vois ! Dis moi ce que tu en pense :slight_smile:

Sinon as tu vraiment besoin de angular-filter ? ^^ ( en attendant qu’on voit ensemble comment on peut s’arranger sur ça !)

Je me doutais que l’application était définie avant mon module mais je manque d’expertise pour pointer pécisément le problème. Donc je comprends mieux maintenant.

Je devrais pouvoir me passer d’angular-filter, je vais juste devoir modifier le résultat de ma requete.

En fait, je voulais afficher dans mon module, quelque chose comme ca pour mes capteurs enocean:

[i]


Pièce: {{key}}

{{device}}.{{name}} : {{device}}.{{value}}
[/i]

C’est surmontable.

Ok je vois :slight_smile:

Essaie de faire sans pour cette fois, ça fait un peu beaucoup de loader tout ça juste pour un filtre :wink:

Mais bon merci d’avoir pointé le problème, c’est un point à réfléchir dans le futur pour pouvoir faire des modules plus poussés !

J’ai pu contourner le problème.

Ca m’a complexifié un peu le code, avec un ng-repeat dans un ng-repeat mais c’est vrai que je charge pas tout le angular-filter au moins.

Content que ça marche :slight_smile: