Доступ к области действия из ng-шаблона
Используя AngularJS, я хочу получить доступ к переменной области изнутри <script type="text/ng-template"
,
<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=isEnglish>Download cartography</h4>
<a href="../downloads/PDF/{{currentLanguage}}/{{currentCartography}}.pdf" download>
<img src="../style/images/pdf-icon.png" alt="Download PDF" width="30%" height="30%">
</a>
<a href="../downloads/VSD/{{currentCartography}}.vsd" download>
<img border="0" src="../style/images/vsd-icon.png" alt="Download VSD" width="30%" height="30%">
</a>
<a href="../downloads/PNG/{{currentLanguage}}/{{currentCartography}}.png" 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>
isFrench
а также isEnglish
2 логических значения от моего контроллера.
То же самое для currentCartography
а также currentLanguage
это строки из моего контроллера.
Я также попробовал с геттером внутри и снаружи контроллера, тот же результат.
3 ответа
Для тех, кто попадает в ту же проблему:
Используя ngDialog, нам нужно уточнить, что мы хотим использовать область. В моем случае я добавил функции открытия диалога в моем контроллере, мне нужно было отредактировать ту, которую я использую, чтобы добавить scope: $scope,
строка следующим образом:
$scope.openPlainCustomWidth = function () {
$rootScope.theme = 'ngdialog-theme-plain custom-width';
ngDialog.open({
template: 'firstDialogId',
controller: 'InsideCtrl',
className: 'ngdialog-theme-plain custom-width',
scope: $scope, // this line wasn't here before
closeByDocument: false
});
};
Три вещи, которые вы можете попробовать
использование
ng-href
вместоhref
для нг-шоу удалить двойные фигурные
{{
если выше двух не работает, используйте $parent (только если вы не используете controller-as)
Ты используешь ng-show
неправильно, он не использует {{}}
выражения.
Пытаться: ng-show="isFrench"
Помимо этого не ясно, что вы спрашиваете