Вы можете добавить прослушиватель событий, используя обычный JS, где вы можете проверить, что ширина окна соответствует вашей мобильной точке останова.Просто убедитесь, что вы включили фактическое изменение в переменную области действия в функции $apply
, иначе AngularJS не узнает об этом:
https://plnkr.co/edit/ZzbXZ3lFxqX6Tlra46W5?p=preview
angular.module('ui.bootstrap.demo').controller('CollapseDemoCtrl', function ($scope) {
$scope.isNavCollapsed = true;
$scope.isCollapsed = false;
$scope.isCollapsedHorizontal = false;
document.addEventListener('click', collapseMenu, false);
function collapseMenu(event) {
if(event.target.matches('.nav.navbar-nav li a') && window.innerWidth < 768) {
$scope.$apply(function() {
$scope.isNavCollapsed = true;
});
}
}
// prevent memory leaks by removing listener when scope is destroyed
$scope.$on("$destroy", function() {
document.removeEventListener('click', collapseMenu, false);
});
});
Обратите внимание, что это потребует от васчтобы синхронизировать CSS и JS со значением точки останова