5

nedeniyle bir yorumdur angularjs uygulamam için bir popup (dialog) yönergesi oluşturmaya çalışıyorum. (yine de çok fazla ...) Ancak, yönlendirme öğesiyle iletilen özniteliklerden değerlerin eklenmesiyle, açılır pencere öğesini oluşturan bir şablon dosyası hazırladım.

şey o şablonda var olan kapsam özelliklerinin farklı değerler kontrol etmek için birkaç ng-IFS, öncesi ve ilgili elemanların sonra

<!-- ngIf: active --> 

gibi daha sonra açısal ekler yorumlar. Yani denetleyicideki $ element argümanı içindeki asıl eleman yerine yorum aldım!

Buradaki yorumlar neden açısal bir şekilde atlanmıyor? Bunu nasıl aşabilirim?

benim şablon kodu (popup_template.html):

<div class="{{className}}" ng-if="active" style="{{popupStyle}}" ng-keyup="closeByEscape($event)"> 
    <div class="vex-overlay" style="{{overlayStyle}}"></div> 

    <div class="vex-content" style="{{contentStyle}}"> 
     <form class="vex-dialog-form" ng-if="type=='plain'"> 
      <div class="vex-dialog-message" ng-if="message!=null"> 
       {{message}} 
      </div> 
     </form> 
     <div ng-if="type=='advanced'" class="transcluded"> 

     </div> 
     <div class="vex-close" ng-if="showCloseButton" ng-click="close()"></div> 
    </div> 
</div> 

şimdi benim açısal kodu:

app.directive('popup', ['popupfactory', '$timeout', function (popupfactory, $timeout) { 
return { 
    restrict: 'E', 
    replace: true, 
    templateUrl: 'popup_template.html', 
    transclude: true, 
    scope: false, 
    link: function (scope, element, attrs, $timeout) { 

     /* Declarations of all scope variables*/ 

     /*** Here, element is a comment! ***/ 

    }, 
    controller: ['$scope', '$element', '$attrs', '$transclude', '$http', function ($scope, $element, $attrs, $transclude, $http) { 

     /*** Here, $element is a comment! ***/ 

    }], 
}; 
}]); 

Ben herhangi bir yorum için çok teşekkür olurdu.

+1

Yönergenin uygulanacağından şüpheliyim çünkü ngIf her şeyden önce çalışır ve diğer tüm yönergelerin derlenmesini engeller. Demo paylaşır mısın? – codef0rmer

+0

Evet, bu, istenen bir sonuç verir ve ancak yönergenin derleme ve bağlantı işlevlerini yerine getirdikten sonra gerçekleştirir. Her neyse Thanx :) – DebbieMiller

cevap

3

ben tamamen Sorununuzu anlıyorum ama bu unsurları direktifleri ile çalışmak istiyorsanız ikincisi gerçekten aracılığıyla başvuruda herhangi bir olay işleyicileri uğraşabilirsin gibi ben ng-if yerine ng-show ve ng-hide kullanarak öneriyoruz emin değilim direktifler. Düğüm hayatta herhangi işleyicileri tutmak ve içeriği işlemek için izin sadece şekillendirme yoluyla düğüm görünmez hale ng-show ve ng-hide ise DOM (böylece senin direktifi içine bir açıklama gibi sokulmuş sanırım) eklenir ve çıkarılır ng-if ile

kolayca.

+0

Harika! Bu cevap ... ng-show ile gerçekten hiçbir nesneyi yorum yapmadan döndürür! Tamam, eğer bu DOM manipülasyonunu istiyorsan iyi değil, ama benim için mükemmel. Teşekkür ederim! hiç bu kadar basit olmadığını düşündüm ... :) – DebbieMiller