Chame a function jQuery do AngularJS Controller

Eu tenho um botão abaixo quando clicado mostra um pequeno pop-up como notificação

  function ShowNotifications() { $('#element').popover('open'); }  

Minha intenção é mostrar esse pop-up a cada poucos segundos sem clicar no botão, mas no controlador AngularJS.

  var showPop = function () { //how can i call that jQuery function here ?? $timeout(showPop, 1000); } $timeout(showPop, 1000); 

Tentei com a solução abaixo

 app.directive("showNotifications", ["$interval", function ($interval) { return { restrict: "A", link: function(scope, elem, attrs) { $interval(function () { $(elem).popover("open"); alert('hi'); }, 1000); } }; }]); 

Também incluiu os scripts

         

usando a diretiva como este

  

Eu vejo um erro “o object não tem popover de método”

Diretivas são usadas para manipulação DOM:

  

E a diretiva

 .directive("showNotifications", ["$interval", function($interval) { return { restrict: "A", link: function(scope, elem, attrs) { //On click $(elem).click(function() { $(this).popover("open"); }); //On interval $interval(function() { $(elem).popover("open"); }, 1000); } } }]); 

Os seguintes passos podem ser seguidos,

 var jq = $.noConflict(); 

em seguida, crie qualquer módulo angular e controlador regular e crie uma function dentro do controlador que podemos usá-lo para chamar qualquer function jquery, por exemplo, eu quero adicionar uma class a um elemento div.

 angular.module('myApp',[]).controller('hello',function($scope){ $scope.name = 'Vikash'; $scope.cities = ['Delhi','Bokaro','Bangalore']; $scope.hide = function(){ jq('#hideme').addClass('hidden'); } }); 

e vamos criar um pouco de html regular para utilizar esse método com o controlador.

  
Hello Dear

Agora aqui você pode ver que estamos falando sobre o método addClass do jQuery dentro da function declarada no controller e parte do $ scpe.

Em vez de um $ apenas coloque a palavra-chave angular

 angular.element("#id").val()