Я очень новичок в angular, поэтому, пожалуйста, извините мое непонимание.
У меня есть директива под названием «перетаскиваемый», которую я хочу иметь возможность отслеживать позицию x и выполнять некоторую логику на ней в контроллере. Когда пользователь перетаскивает элемент (фигурку) вправо, сразу за ним должны появиться дополнительные фигурки. Контроллер должен знать положение x и в зависимости от того, где оно находится, увеличивать счетчик, который будет определять, сколько фигурок палочек появляется за перетаскиваемым элементом.
Этот код в настоящее время не работает, так как контроллер не получил значение x.
Моя директива:
app.directive('draggable', function() {
return {
restrict: 'A',
scope: "=x",
link: function (scope, element, attrs) {
$(element).draggable({
containment: "parent",
axis: "x",
drag: function(){
scope.x = $(this).offset().left;
}
});
}
};
});
Мой контроллер:
app.controller("main-controller", function($scope) {
$scope.range = function(n) {
return new Array(figures);
};
$scope.$watch("x", function(){
console.log($scope.x);
figures = x / (stick_figure_height)
});
});
Мой HTML:
<div class="human-slider" ng-controller="main-controller">
<div draggable class="human-draggable">
<img src="images/stickfigure.png"/>
</div>
<div ng-repeat="i in range()">
<img src="images/stickfigure.png"/>
</div>
</div>