SORU
9 HAZİRAN 2013, Pazar


Uzanan Açısal Yönergesi

3 parti bir Direktif (özellikle Angular UI Bootstrap) için küçük bir değişiklik yapmak istiyorum. Ben sadece pane Bu Yönetmelik kapsamı eklemek istiyorum:

angular.module('ui.bootstrap.tabs', [])
.controller('TabsController', ['$scope', '$element', function($scope, $element) {
  // various methods
}])
.directive('tabs', function() {
  return {
    // etc...
  };
})
.directive('pane', ['$parse', function($parse) {
  return {
    require: '^tabs',
    restrict: 'EA',
    transclude: true,
    scope:{
      heading:'@',
      disabled:'@' // <- ADDED SCOPE PROPERTY HERE
    },
    link: function(scope, element, attrs, tabsCtrl) {
      // link function
    },
    templateUrl: 'template/tabs/pane.html',
    replace: true
  };
}]);

Ama ben de Bower ile güncel Açısal-Bootstrap tutmak istiyorum. bower update, koşarım bitmez benim değişikliklerin üzerine yapacağım.

Nasıl bu bower bileşeni ayrı olarak bu Direktifi uzatmak için ne yapmam lazım?

CEVAP
9 HAZİRAN 2013, Pazar


Muhtemelen en basit yolu bu sorunu çözmek için aynı adı kullanan başka bir uygulama üzerinde bir yönerge oluşturmak için üçüncü parti Direktif gibi. Her iki Direktife çalışır ve onların emri priority özelliği (daha yüksek öncelik ilk çalışır) kullanarak belirtebilirsiniz.

İki direktifleri kapsam paylaşacak ve Direktifi ile üçüncü parti Direktifi kapsamında link yöntemi erişebilir ve bunları değiştirebilirsiniz.

Seçenek 2:Ayrıca sadece onunla aynı eleman (ne Direktif kapsam kullanması izole varsayarak) keyfi adlı kendi Direktifi koyarak üçüncü parti bir direktifin kapsamı erişebilirsiniz.Olmayan izole bir unsuru kapsam tüm direktifleri kapsamında paylaşacak.

Daha Fazla Bilgi İçin:https://github.com/angular/angular.js/wiki/Understanding-Directives#extending-directives

Not:Önceki cevabımı üçüncü parti bir hizmet, bir Direktif değil değiştirmek için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ArkticPlanet

    ArkticPlanet

    9 ŞUBAT 2010
  • Jeremy Gallman

    Jeremy Gallm

    11 NİSAN 2012
  • Peter Sharp

    Peter Sharp

    11 ŞUBAT 2013