2015-12-17 4 views
0

Я добавляю элементы в DOM и даю им выражения позиций из родительского контроллера. По мере добавления каждого нового элемента позиции обновляется по всем существующим элементам DOM. Я хочу, чтобы он обновлял позицию нового элемента директивы.

.directive("addbuttons", 
    function($compile, PositionService, $timeout){ 
     return { 
     restrict: 'A', 
     replace: false, 
     scope: { 
      test: "@" 
      }, 
      link: function ($scope, $element, attrs) { 

     $timeout(function() { 

     var posX = 0, posY = 0; 
     ionic.onGesture('tap', function (e) { 
      e.gesture.srcEvent.preventDefault(); 
      e.gesture.preventDefault(); 
      switch (e.type) { 
      case 'tap': 
       posX = event.gesture.touches[0].pageX; 
       posY = event.gesture.touches[0].pageY; 
       //$scope.test = posX; 
       //console.log(posX); 
       console.log(posY); 
       break; 
      } 
     }, $element[0]); 
     }); 
     $element.bind("click", function() { 
     angular.element(document.getElementById('tagContainer')).prepend($compile("<div class='square' id='square1' style='left: {{test}}px' data-ion-pinch></div>")($scope)); 
     }); 
    } 
    } 
}); 
+0

Подумайте, что вы можете значительно упростить этот код с помощью ng-click и ng-style, вместо того, чтобы использовать $ compile – koolunix

ответ

0

Вы собираетесь снова Углеродные узоры. Просто используйте директивы по умолчанию, такие как ng-click, ng-class. Помните, что всегда старайтесь оставить DOM-манипуляцию на Angular, вам нужно «управлять» только моделью (если только сможете).

+0

Итак, как бы поместить позицию css в элемент, который я добавляю в DOM – nareeboy

Смежные вопросы