我将元素添加到DOM中,并从父控制器中为它们提供位置表达式。添加每个新元素后,将在DOM上的所有现有元素上更新position元素。我只希望它更新新指令元素的位置。
.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 :(得分:0)
你将重新审视AngularJS模式。只需使用默认指令,例如ng-click
,ng-class
。记住,总是尝试将DOM操作留给Angular,你应该“只”管理模型(只要你可以)。