2016-12-19 20 views
0

にjqueryの機能を回し、私はクラスを持つ要素「.overflowは」オーバーフローしと省略記号を持っているかどうかを確認するには、以下の(作業)jQueryの機能を持っている:角度ディレクティブ

function isOverflowEllipsis() { 
    $('.overflow').each(function(){ 
     var clone = $(this).clone(); 
     clone.css({"overflow":"visible"}); 
     clone.addClass("clone"); 
     clone.appendTo('.atc'); 
     var cloneScrollWidth = clone.get(0).scrollWidth; 
     var cloneClientWidth = clone.get(0).clientWidth; 
     $('.clone').remove();  
     if(cloneScrollWidth > cloneClientWidth){ 
      console.log("true");    
     } 
     else { 
      console.log("false"); 

     } 
    }); 
} 

は今、私はこれを使用したいです私のAngularJSアプリの機能どのように私はそれを働く指示に変えることができますか?私はjqLit​​eを使いたい。私は、カスタムディレクティブに新しいですし、私はそれが;-(

これは私の失敗した試みで動作させることはできません。

app.directive("isOverflowEllipsis", function() { 
    return { 
     restrict: "EA", 
     link: function(scope, elem, attrs) {   
       var clone = elem.clone(); 
       clone.css({"overflow":"visible"}); 
       clone.addClass("clone"); 
       clone.append('.overflow'); 
       var cloneScrollWidth = clone.scrollWidth; 
       var cloneClientWidth = clone.clientWidth; 
       $('.clone').removeClass();  
       if(cloneScrollWidth > cloneClientWidth){ 
        console.log("true");    
       } 
       else { 
        console.log("false");     
       }   
     } 
    }; 
}); 

編集:jQueryのに機能が$(document).ready(function(){...}内および$(window).resize(function() {...}です。どのように私はディレクティブでこれを行う必要はありますか?

答えて

0
link: function(scope, elem, attrs) {   
      var clone = angular.copy(elem); 
      attrs.overflow="visible"; 
      clone .addClass("clone"); 
      clone .append('.overflow'); 
      var cloneScrollWidth = attrs.scrollWidth; 
      var cloneClientWidth = attrs.clientWidth; 
      elem.removeClass('clone');  
      if(cloneScrollWidth > cloneClientWidth){ 
       console.log("true");    
      } 
      else { 
       console.log("false");     
      }   
    } 
+0

あなたは著者のコードで何を変えなかったし、あなたの答え –

+0

ノーの説明を必要とする、申し訳ありません。ここでクローニング一部が欠落している。私はのクローンを作成する必要がありますオーバーフローを検出してcを削除する要素DOMからもう一度淘汰された要素を削除します。元の要素のオーバーフローは隠されたままでなければなりません(このように検出できないので、私はクローンを作成します)。 –

+0

回答を更新しました –

関連する問題