나는 각도가 너무 새롭기 때문에 이해 부족이라고 변명하십시오.Angular.js - 컨트롤러 통신에 대한 지침
컨트롤러의 x 위치를 추적하고 컨트롤러에서 일부 논리를 수행 할 수 있도록 "draggable"이라는 지시문이 있습니다. 사용자가 요소 (스틱 그림)를 오른쪽으로 드래그하면 추가적인 스틱 그림이 그 바로 뒤에 나타납니다. 컨트롤러는 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>
귀하의 질문에 정확히 무엇입니까? 지시어와 컨트롤러는 어떻게 통신합니까? 의심 할 여지없이 명시해야 할 수도 있습니다. – Julian
좋아, 내가 게시 한 코드는 현재 작동하지 않습니다. 또한 지침이 컨트롤러와 어떻게 통신해야하는지 알고 싶습니다. 내가 서비스를 사용해야합니까? –