2016-06-26 5 views
1

を働いていない私は、動的にngClickハンドラを持つ要素を作成し、ディレクティブ要素に追加しディレクティブを持っている:ダイナミックNGクリック

app.directive('truncate', ['$compile', function($compile) { 
    return { 
     restrict: 'A', 
     scope: { 
      textStr: '=', 
      truncLength: '=' 
     }, 
     link: function(scope, element, attrs) { 
      scope.open = false; 

      scope.more = function() { 
       console.log('hello'); 
      } 

      scope.less = function() { 
       var outputEle = angular.element('<span>' + scope.textStr.substring(0, scope.truncLength) + '<a data-ng-click="more()"> more...</a>' + '</span>'); 
       $compile(outputEle, scope); 
       element.append(outputEle); 
      } 
      scope.less(); 
     } 
    } 
}]); 

ダイナミック要素が追加されているが、ダイナミックngClickは(以下内で定義されました機能)が機能していません。私は間違って何をしていますか?

答えて

0

コンパイル部分が間違っています。それはあなたがscopeにDOM要素を接続するために、次の使用機能をリンク$compile(outputEle)戻り、という

var outputEle = angular.element('<span>' + scope.textStr.substring(0, scope.truncLength) + '<a data-ng-click="more()"> more...</a>' + '</span>'); 
$compile(outputEle)(scope); 
element.append(outputEle); 

注意する必要があります。

+0

ありがとう! :) –

+0

いいえ問題は、それが助けてうれしい。 – dfsq

関連する問題