2016-10-27 42 views
0

我試圖做一個指令,當應用於任何輸入元素時添加一個數據ng模式。現在我想要綁定它。我環顧四周,發現了一些東西,但沒有奏效。在一個元素上綁定動態生成的角度指示文字

mainModule.directive("telephoneValidation", function ($compile) { 
    return { 
     restrict: "A", 
     replace: true, 
     link: 
      function (scope, element, attrs) { 
       element.attr('data-ng-pattern','^[\(]{0,1}[\+ ]{0,1}[0-9 ]+[\)]{0,1}[0-9\- ]*$/'); 
       $compile(element.contents())(scope); 
       element.removeAttr('telephone-validation').empty(); 
      } 
    }; 
}); 
+0

你想用這個存檔什麼:$ compile(element.contents())(scope);? – eg16

+0

基本上在編譯階段,你必須添加'ng-pattern'屬性和刪除指令屬性。之後再從鏈接編譯元素。看看[這個答案](http://stackoverflow.com/a/31062143/2435473)會幫助你。 –

+0

@ eg16我正在嘗試重新編譯DOM元素以在元素上實現2路綁定,以便角度監視元素並相應地作出響應。目前正在充當自定義屬性。 – NavalRishi

回答

0

對不起,我的愚蠢。我錯誤地寫了屬性的值,它在開始時缺少正斜槓。該元素正在使用相同的代碼動態編譯。

的方式來更肯定的是,通過使用

angular.element(element) 

,然後將其傳遞到包裹元件作爲角元件來編譯

compile(angular.element(element))(scope)); 

我發現溶液讀取編譯文檔here

相關問題