javascript - Angular $parse 不返回本地人

标签 javascript angularjs

我正在尝试使用 jQuery 和 Angular 指令使元素可拖动:

function dragElement($parse) {
return {
  restrict: 'A',
  link: function($scope, ele, $attr) {
    var onDragStart = $attr.onDragStart ? $parse($attr.onDragStart) : null;
    var dragData = $scope.$eval($attr.dragData) || ele;
    ele.draggable({
      containment: 'document',
      revert: true,
      helper: "clone"
    });

    ele.on("dragstart", handleDragStart);

    function handleDragStart(e) {
      if (onDragStart) {
        $scope.$apply(function() {
          var locals = {
            $event: e,
            $dragData: dragData,
          };
          onDragStart($scope, locals); //locals are defined fine here
        });
      }
    }
  }
};

}

在我的 Controller 中,我有一个函数,当我开始拖动时会调用该函数。该函数被正确调用,但问题是参数列表为空,并且在指令中解析的本地变量不可用。

Controller 功能

function handleFeatureDragStart($event, data) {
  console.log(arguments); //Empty
  console.log('inside handle feature start');
  console.log($event); //undefined
  console.log(data);//undefined
}

最佳答案

我看不到你在哪里触发handleFeatureDragStart函数。

如果“onDragStart”是您想要的函数,则您以错误的方式传递参数并错误地使用它们。

handleFeatureDragStart(e, data);

function handleFeatureDragStart(e, data) {}

“arguments”为空,因为您没有传递其他参数。

关于javascript - Angular $parse 不返回本地人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35548586/

相关文章:

javascript - 如何在angular js中显示倒计时

javascript - Angularjs 邮件应用程序的长轮询

javascript - 去除 iFrame 的 html 标签样式

javascript - React + Firebase取消订阅不是useEffect中的函数

javascript - Firestore - 查询并动态设置 Refs 函数

数组列表元素上的 Javascript 删除运算符

javascript - Web 浏览器缓存问题

angularjs - 我应该如何在 jasmine 单元测试中访问元素的 angularjs $ngModelController?

javascript - 'callbacks' 只是一个命名约定吗?

angularjs - 在焦点上打开列表