#javascript #jquery #html #angularjs
#javascript #jquery #HTML #angularjs
Вопрос:
Я использовал ng-include для добавления html, во включенном html у меня включена боковая панель навигации, эту боковую навигацию я хочу показать в одном html, а не во втором html, как я могу это сделать?
МОЙ включает
<div ng-include src="'template/includeGallery.html'" id="angularGallery" ng-controller="galleryCtrl as vm"
ng-show="vm.showGallery" resize>
</div>
includeGallery.html как
<div class="gallery">
<div class="close" ng-click="vm.closeGallery()">
<img src="../images/closeimage.png" class="close-img">
</div>
<!-- Gallery start -->
<div ng-include src="'view/sidepanel.html'">
</div>
</div>
В приведенном выше коде я хочу показать ng-include src="'view/sidepanel.html'">
на одной HTML-странице, и я не хочу показывать во втором html, оба имеют разные контроллеры.
Оба html имеют разные контроллеры.
Комментарии:
1. какой маршрутизатор вы используете?
2. я использую $routeProvider.
3. Я думаю, это неправильный способ сделать это.
4. Можете ли вы подсказать мне, как я могу продолжить это?
Ответ №1:
Вы должны использовать ng-show здесь :
Инициализируйте одну переменную состояния из контроллера, чтобы убедиться, что вы хотите показать или нет.
$scope.status = true;
Тогда, на ваш взгляд :
<div ng-show="status" ng-include src="'template/includeGallery.html'" id="angularGallery" ng-controller="galleryCtrl as vm"
ng-show="vm.showGallery" resize>
</div>
Комментарии:
1. я уже это сделал, но проблема в том, что ng-include src=»‘template/includeGallery.html ‘» имеет еще один включенный html, который я хочу скрыть во втором html, который имеет другой контроллер.
2. Так что попробуйте это во втором случае, иначе вы также можете использовать ng-if .
Ответ №2:
В контроллере, в который вы не хотите включать файл, возьмите flag
, сделайте его истинным и добавьте ng-if
условие, в котором вы включаете частичное,
app.controller('myController', ['$scope',
function($scope) {
vm.to_display = true;
}
])
includeGallery.html как
<div class="gallery">
<div class="close" ng-click="vm.closeGallery()">
<img src="../images/closeimage.png" class="close-img">
</div>
<!-- Gallery start -->
<div ng-if = "vm.to_display" ng-include src="'view/sidepanel.html'">
</div>
</div>
Комментарии:
1. хорошо, у вас есть
controller-as
, изменитьvm.to_display = true
, в поле зрения,ng-if = "vm.to_display"
2. измените на переменную, которую вы использовали в контроллере как
3. На одном контроллере он работает нормально, но на втором контроллере он не работает.
4. что такое второй контроллер, у него может быть другой
controller-as
, вставьте код второго контроллера5. использует ли ваш второй контроллер синтаксис
controller-as