2016-06-03 24 views
5

Bir modal açmak için yönergeler yapmak istiyorum. Ancak $ uibModal yönergede tanımlanmamıştır.

var app=angular.module("app",['ui.bootstrap']); 

app.controller('AppCtrl', function ($scope, $uibModal) { 
    console.log("$uibModal controller",$uibModal);//getting object 
}); 

app.directive('showPopUp',function() { 
    return { 
     restrict: 'EA', 
     link: function(scope, el, attrs,$uibModal) { 
      console.log("$uibModal",$uibModal);//undefined here 
       var modalInstance = $uibModal.open({ 
        animation: $scope.animationsEnabled, 
        templateUrl: 'popup.html', 
       }); 

       modalInstance.result.then(function (selectedItem) { 
        scope.selected = selectedItem; 
       }, function() { 
       }); 

     } 
    } 
}); 

$ uibModal yönergesimi kullanarak nasıl bir model açabilirim?

+0

ben size yönergesine denetleyicisi eklemek ve orada $ uibModal enjekte düşünüyorum. İyi çalışacaktır –

cevap

3

Yönlendirici bağlantı işlevi enjektabl değildir, sabit düzende sabit parametre kümesini alır. Ama yönerge fonksiyonu kendisine hizmet enjekte edebilir

app.directive('showPopUp', function($uibModal) { 
    return { 
     restrict: 'EA', 
     link: function(scope, el, attrs) { 

      var modalInstance = $uibModal.open({ 
       animation: scope.animationsEnabled, 
       templateUrl: 'popup.html', 
      }); 

      modalInstance.result.then(function(selectedItem) { 
       scope.selected = selectedItem; 
      }, function() {}); 

     } 
    } 
}); 

Demo:http://plnkr.co/edit/jwNOM94DtyRIXTdhvJmy?p=preview

+0

Direktive fonksiyonun kendisine hizmet enjekte ettikten sonra kod sürekli olarak çalışır ve tarayıcı kilitlenir. – Keshav

+0

Bu, gönderdiğim kodla mümkün değil. Bu, uygulamanızda bir şeyleri karıştırdığın anlamına gelir. Cevap olarak bir demo yayınladım. – dfsq

İlgili konular