在 AngularJS 中获取图像位置 (x;y)

Get image position(x;y) in AngularJS

我正在尝试获取图像的位置 (x;y),在我的 file.js 一侧,这是我到目前为止得到的结果:

红色圆圈中是我的可拖动图像,如您所见,我能够获得该位置,但是一旦我尝试在 angular 侧传递此值,它们就会显示为未定义。

这是我的代码:

html 边:

 <div ng-show="visible1" style="display: block;left: 20px;">

    Nom:<input ng-model="nameW" required></br>
    lieu: <input ng-model="locName" required></br>
    x:<div id="posX" ng-model="locX" ></div></br>
    x:<input   id="posXinput" ng-model="locXI" ></input></br>
    y:<div id="posY" ng-model="locY" ></div></br>
    y:<input  id="posYinput"   ng-model="locYI" ></input></br>
    <button ng-click="update(nameW,locName,locXI,locYI)">Valider</button>

</div>
</div >
<div style="bottom: 30px;left: 30px;position: absolute;">

<img src="pages/resources/img/téléchargement.jpg" draggable="true"   id="draggable" class="ui-widget-content" style="max-height: 20px;position: absolute;">

<img id="box" src="pages/resources/img/skyrim-map-by-mottis86-lg.jpg" style="max-width: 50%">
</div>
</div>

<script type="text/javascript" >

     $(function() {
    $("#draggable").draggable({
        containment: "#box",
        scroll: false,
        drag: function(event) {
            var top = $(this).position().top;
            var left = $(this).position().left;

            $('#posX').text(left);
            $('#posXinput').val(left);
            $('#posY').text(top);
            $('#posYinput').val(top);
        }
    });
});
</script>

在我的 js 端:

 $scope.update = function (name,locName,locX,locY) {

        console.info(name,locName,locX,locY);

    };

我得到的是:"u" "u" undefined undefined

希望有人能帮助我。

对不起我的英语,它不是我的母语。

您可以在 angular js 文件中移动您的函数并在范围内赋值

    $scope.update = function (name, locName, locX, locY) {
        console.info(name, locName, locX, locY);
    };
    $(function () {
        $("#draggable").draggable({
           containment: "#box",
           scroll: false,
           drag: function (event) {
               var top = $(this).position().top;
               var left = $(this).position().left;        
               $('#posX').text(left);
               $scope.locXI = left;
               $('#posY').text(top);
               $scope.locYI = top;
           }
       });
   });

而且您还可以在 JavaScript 中使用 angular 范围,而无需像这样移动到 angular 文件

$(function () {
    $("#draggable").draggable({
        containment: "#box",
        scroll: false,
        drag: function (event) {
            var top = $(this).position().top;
            var left = $(this).position().left;

            $('#posX').text(left);
            $('#posXinput').val(left).change();
            var scope = angular.element($("#posXinput")).scope();
            scope.$apply(function(){
                scope.locXI = left;
            });
            $('#posY').text(top);
            $('#posYinput').val(top).change();
            var scope = angular.element($("#posYinput")).scope();
            scope.$apply(function(){
                scope.locYI = top;
            });
        }
    });
});