2014-10-04 63 views
0

我想在Angular指令中獲取呈現的內容。這裏是我的代碼:獲取Angular指令的編譯內容

的Javascript:

app.controller('appCtrl', function($scope){ 
    $scope.items = [1,2,3,4] 
}); 
app.directive('pane', function($interpolate, $compile){ 
    return { 
     restrict: 'E', 
     scope:true, 
     link: function(scope, element, attrs){ 
      var text = element.html(); 
      var content = $interpolate(text)(scope); 
      alert(content);    
     } 
    } 
}); 

HTML:

<div ng-controller='appCtrl'> 
<pane> 
    <span ng-repeat="item in items">{{item}}, </span> 
</pane> 
</div> 

所以,但是當我運行它,我只得到 「」 在警告對話框

PS:我試圖按照this answer,但它不工作

+0

我用你的代碼幾乎一樣,是和它呈現的罰款。這裏是[小提琴](http://jsfiddle.net/83Lxd5vr/) – 2014-10-04 07:50:58

+0

我說的是警告框中的內容,因爲我想根據原始內容修改指令的內容:)謝謝小提琴 – DavidTran 2014-10-05 03:04:32

回答

0

你應該嘗試從第e編譯功能。

例如:

app.directive('pane', function($interpolate, $compile){ 
    return { 
     restrict: 'E', 

     compile: function(tElement, attrs){ 

      var content = tElement.children(); 
      console.log(tElement); 
      $(tElement).empty(); 
      for(i=1;i<10;i++){ 
       console.log(1); 
       tElement.append(content.clone()); 
      } 
      return { 
       post: function(scope, element, attrs){ 
        console.log(scope.items); 
       } 
      } 
     }, 

    } 
});