2015-01-12 87 views
3

考慮一下這個可運行的例子:爲什麼el4沒有放在el3之後?如果我調試並打印el3,el4似乎已經消失。我怎麼能把一個元素放在另一個元素之後,以便他們成爲兄弟姐妹?AngularJS Jqlite之後不添加元素

編輯:我不想在調用.after()之前追加el3。我只需要兩個angular.elements,我想將它們合併成兩個兄弟,然後將append或它們替換爲指令元素。

angular.module('myModule', []) 
 

 

 
.directive('mydir', [function() { 
 
    return { 
 
     restrict: 'E', 
 
     scope: {}, 
 
     template:'<div><b>{{myf.str}}</b>', 
 
     link: function (scope, elem, attrs, ctrl) { 
 
      
 
      
 
      var el = angular.element('<b>First </b>'); 
 
      var el2 = angular.element('<i>Second</i><br>'); 
 
      el.append(el2); 
 
      elem.append(el); 
 
      
 
      
 
      var el3 = angular.element('<b>Third </b>'); 
 
      var el4 = angular.element('<i>Fourth</i>'); 
 
      el3.after(el4); 
 
      elem.append(el3); 
 
      
 
      
 
     } 
 
    }; 
 
}])
<html ng-app='myModule'> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 

 
<mydir></mydir>

+2

好了,'el3'不追加卻又如此'el3.after(EL4);'將無法工作。如果你改變他們的地方,它會起作用 - [plunker](http://plnkr.co/edit/DsydFWErgapAegfLJX2J?p=preview) – Vucko

+0

感謝Vucko,但我想在追加或替換之前將這些元素作爲兄弟元素添加在一起。 – user1506145

+0

有多種方法可以做到這一點。你想要達到什麼目的? – Vucko

回答

0

angular.module('myModule', []) 
 

 

 
.directive('mydir', [ 
 
    function() { 
 
    return { 
 
     restrict: 'E', 
 
     scope: {}, 
 
     template: '<div><b>{{myf.str}}</b>', 
 
     link: function(scope, elem, attrs, ctrl) { 
 

 

 
     var el = angular.element('<b>First </b>'); 
 
     var el2 = angular.element('<i>Second</i><br>'); 
 
     el.append(el2); 
 
     elem.append(el); 
 

 

 
     var el3 = angular.element('<b>Third </b>'); 
 
     var el4 = angular.element('<i>Fourth</i>'); 
 

 
     elem.append(el3); 
 
     elem.after(el4); 
 

 

 
     } 
 
    }; 
 
    } 
 
])
<html ng-app='myModule'> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 

 
<mydir></mydir>

+0

感謝sylwester,但是我想先將這兩個元素作爲sibligs加在一起,然後再將它們附加在一起。 – user1506145

相關問題