2016-10-22 11 views
0

Вот мой код в приложении AngularJs.Как изменить расположение размещения в угловом js в зависимости от размера экрана?

<div class="col-lg-10 col-md-10 col-sm-10 col-xs-10 myMoodTitle"> 
    <span class="headText">My Mood</span> 
    <a id="openMyMoodMsgBox" class="fa fa-question-circle  tooltipInfo" uib-popover-template="'chatMySettingsMoodPopover.html'" popover-class="chat-mysettings-mymood" ng-click="open('1')" popover-is-open="isOpen1"></a> 
</div> 

Приведенный выше код, я не использую popover-placement тег. Я хочу изменить это, когда разрешение экрана будет меньше 768px будет показано popover-placement снизу. Я пытаюсь ниже этого пути, но он не работает:

var $iW = $(window).innerWidth(); 
if ($iW < 768){ 
    $('.chat-mysettings-mymood').popover({placement: 'bottom'}); 
} 
else{ 
    $('.chat-mysettings-mymood').popover({placement: 'right'}); 
}; 

Здесь chat-mysettings-mymood это имя класса поповер. Я пытаюсь решить эту проблему, но я потерпел неудачу, и этот код не работает.

Когда я пользуюсь тегом рядом с тегом popover-class, он работает, но как я могу контролировать его в зависимости от разрешения экрана?

ответ

0

использования угловое выражение для поповера-размещений:

<a id="openMyMoodMsgBox" 
     class="fa fa-question-circle tooltipInfo" 
     uib-popover-template="'chatMySettingsMoodPopover.html'" 
     popover-placement="{{ placement }}" 
     popover-class="chat-mysettings-mymood" 
     ng-click="open('1')" 
     popover-is-open="isOpen1"></a> 

JS файл:

angular.module('ui.bootstrap.demo', ['ngAnimate', 'ngSanitize', 'ui.bootstrap']); 
angular.module('ui.bootstrap.demo').controller('PopoverDemoCtrl', function ($scope, $timeout) { 
    $scope.isOpen1 = true; 

    updatePlacement(); 

    $(window).on('resize', updatePlacement); 

    function updatePlacement() { 
    $timeout(function() { 
     console.log('W = ' + $(window).innerWidth()); 
     $scope.placement = $(window).innerWidth() < 768 ? 'bottom' : 'right'; 
    }); 
    } 
}); 

plunker: https://plnkr.co/edit/Iy9y71YUWcYD1vvykQH9?p=preview

+0

я понял, что размещение поповера будет динамичным ... но как могу ли я применить в своем коде. Пожалуйста, объясните с помощью простого примера ... Однако, спасибо за ответ. –

+0

Я предоставил вам полнофункциональный пример, пожалуйста, посмотрите мой файл plunker -> example.js, значение места размещения вычисляется в контроллере, когда приложение загружается, а затем при каждом изменении размера окна (попробуйте изменить размер окна предварительного просмотра в плункере см. изменения). Также открываем окно консоли, я печатаю текущую ширину окна с помощью функции console.log() для удобства – Andriy

+0

Я обновил свой ответ с помощью JS-кода, BTW, он основан на официальном bootstrap-ui demo - https: // угловом-ui. github.io/bootstrap/#/popover (их плункер: https://plnkr.co/edit/?p=preview) – Andriy