2016-04-07 39 views
0

Uzun zamandır bir sorunla karşı karşıya kaldım. Bu konuda bana yardımcı olabilir misiniz? Aslında pek çok yerde tablo yönergesini kullanmak istiyorum. bu yüzden bir direktif oluşturdum ve içine açısal UI ızgarasını bağladım. Ama derleme hatası alıyorum.Açısal: Derleme tanımlı değil

Error: angular.min.js:102 ReferenceError: compile is not defined

Ama burada yanlış yaptığı şey ızgara içeriği

yükleyebilir?

HTML 
<div ng-controller="ctrl1 as two"> 
    <ltcg-table><ltcg-table>  
</div> 
<div ng-controller="ctrl2 as two"> 
    <ltcg-table><ltcg-table>  
</div> 

JS 

myApp.directive('ltcgTable', function($compile) { 
      return { 
       restrict: 'E', 
       transclude: true,  
       replace: false,        
       scope: { }, 
       controller: Controller, 
       controllerAs: 'Controller', 
       bindToController: true,    
       compile: compile 
      } 

     }); 
+0

Ne derleyeceğini bilmiyorum ama derlemek: derlemek: yerine "derlemek: $ derlemek". – Roy

+0

Teşekkürler. ancak derleme kullanırken: $ compile error error angular.min.js: 102 Hata: [$ compile: multidir] http://errors.angularjs.org/1.3.15/$compile/multidir?p0=ltcgTable&p1=uiGrid…p3 =% 3Cltcg-table% 20ui-grid% 3D% 22gridOptions% 22% 20class% 3D% 22ng kapsam% 22% 3E – klmuralimohan

cevap

0

compile fonksiyonu (compile: compile ikinci bölümü) tanımlanmamıştır. Eğer özel bir şey ve ızgara işleri yapmak gerekmiyorsa, alternatif

myApp.directive('ltcgTable', function($compile) { 
    return { 
     restrict: 'E', 
     transclude: true,  
     replace: false,        
     scope: { }, 
     controller: Controller, 
     controllerAs: 'Controller', 
     bindToController: true,    
     compile: function(tElement, tAttr, transclude) { 
      //do some stuff here 
     } 
    } 

}); 

Veya: Yani direktif şöyle tanımlayan deneyin

function compile(tElement, tAttrs, transclude) { ... } 

: Bu şeklinde bir işlevi olmalıdır olduğu gibi, compile alanını yön belirtiminin dışına bırakmanız yeterlidir.

+0

Cevabınız için teşekkürler. Ama derleme işlevini kullandığımda hiç şans alamıyorum "angular.min.js: 102 Hata: [$ compile: multidir] http://errors.angularjs.org/1.3.15/$compile/multidir?p0 = ltcgTable & p1 = uiGrid & p2 = transkripsiyon ve p3 =% 3Cltcg-table% 20ui-grid% 3D% 22gridOptions% 22% 3E " – klmuralimohan

+0

Gerçek olması için gerçekten transclude ihtiyacınız var mı? Derleme işlevine gerçekten ihtiyacın var mı? Direktif kapsamına gerçekten ihtiyacınız var mı? Değilse, bu alanları yönerge yapılandırmasından çıkarın. – fikkatra

+0

Evet, bu yönergeyi yeniden kullanmak istiyorum çünkü izolat için kapsama ihtiyacım var. – klmuralimohan