Bonjour,
J'aimerai pouvoir binder un ng-show sur un booleen, ou un retour de fonction.
Mais, mon ng-show est situé dans un <script type="text/ng-template" id="firstDialogId">.
Voici le code concerné :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <script type="text/ng-template" id="firstDialogId"> <div class="ngdialog-message" align="center" id="download"> <h4 ng-show="isFrench">Télécharger la cartographie</h4> <h4 ng-show="getIsEnglish()">Download cartography</h4> <a href="index.html" download> <img src="../style/images/pdf-icon.png" alt="Download PDF" width="30%" height="30%"> </a> <a href="index.html" download> <img border="0" src="../style/images/vsd-icon.png" alt="Download VSD" width="30%" height="30%"> </a> <a href="index.html" download> <img border="0" src="../style/images/PNG-icon.png" alt="Download PNG" width="30%" height="30%"> </a> <div class="ngdialog-buttons"> <button type="button" class="ngdialog-button ngdialog-button-primary" ng-click="closeThisDialog('button')">Close</button> </div> </div> </script>
J'essaie avec un booleen et également avec un getter tous deux issus du controller car il semblerait qu'on puisse accéder aux fonctions mais pas aux variables du $scope depuis un ng-template.
Et voici la partie concernée de mon controller :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 app.controller('viewerController', function ($scope, $rootScope, ngDialog) { // Slide menu state $scope.checked = false; // This will be binded using the ps-open attribute $scope.toggle = function() { $scope.checked = !$scope.checked } // Language initialization $scope.defaultLanguage = navigator.language || navigator.userLanguage; if (localStorage.getItem("defaultLanguage")) $scope.currentLanguage = localStorage.getItem("defaultLanguage"); else $scope.currentLanguage = $scope.defaultLanguage; if ($scope.currentLanguage == "fr") { $scope.isFrench = true; $scope.isEnglish = false; } else if ($scope.currentLanguage == "en") { $scope.isFrench = false; $scope.isEnglish = true; } $scope.getIsFrench = function () { return $scope.isFrench; }; $scope.getIsEnglish = function () { return $scope.isEnglish; };
J'ai également essayé :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <h4 ng-show="angular.element(document.getElementById("svgElement")).scope().isFrench">Télécharger la cartographie</h4> <h4 ng-show="angular.element(document.getElementById("svgElement")).scope().isEnglish">Download cartography</h4> ...
ou encore :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <h4 ng-show="angular.element(document.querySelector('#french')).innerHTML">Télécharger la cartographie</h4> <h4 ng-show="angular.element(document.querySelector('#english')).innerHTML">Download cartography</h4> ...
Mais aussi :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <!-- This should be hidden --> isFrench : <div id="french">{{ isFrench }}</div> isEnglish : <div id="english">{{ isEnglish }}</div> <script type="text/ng-template" id="firstDialogId"> <div class="ngdialog-message" align="center" id="download"> <h4 ng-show="document.getElementById('french').innerHTML">Télécharger la cartographie</h4> <h4 ng-show="document.getElementById('english').innerHTML">Download cartography</h4> ...
Enfin, rien de tout ça n'a fonctionné, une idée du pourquoi et de comment résoudre mon problème ?
Amicalement.
Partager