javascript - ondragstart、ondragover、onstart - $scope 未定义

标签 javascript angularjs drag-and-drop angularjs-digest

我的任务是使用 angular 处理掉落的文本。我在拖放事件中不断收到此错误 $scope is not defined 。知道如何解决这个问题吗?

我已经研究过 Angular 拖放库。他们不允许拖放简单的文本。他们中的大多数都使用列表。让我知道是否有适合这项任务的人

这里是 plunker:

[http://plnkr.co/edit/egKL13hsHka6RiX4UfSS?p=preview][1]

这是 Controller :

var app = angular.module("test",  []);
app.controller('testCtrl', ['$scope',function  ($scope) {
   $scope.nouns = ['guitar'];
   $scope.verbs = ['play'];
   $scope.allowDrop= function (ev) {
        ev.preventDefault();
   };
   $scope.drag=  function (ev) {
        ev.dataTransfer.setData("Text", ev.target.id);
   };    
   $scope.drop=  function (ev) {
        ev.preventDefault();
        var data = ev.dataTransfer.getData("Text");
        if(ev.target.id =='verb' && $scope.verbs.indexOf(data) != -1){
            ev.target.appendChild(document.getElementById(data));
        }
        else{
            alert(data + ' is not a ' + ev.target.id +'. Try again');
        }            
    };      
  }]);

最佳答案

$scope 对象在"Outside angular context" 中不可用。 每当你想访问 JavaScript 中的 Angular 范围( Angular 世界之外)时,你需要通过获取该元素的 DOM 来获取 scope ,然后像 angular.element 一样访问它的范围(document.getElementById('testApp')) 这只是正文的范围。

Working Plunkr

引用这个SO answers访问 Angular 上下文之外的范围。

关于javascript - ondragstart、ondragover、onstart - $scope 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200012/

相关文章:

javascript - Stage.addchild 将对象置于前面

javascript - 将字符串转换为 jquery 对象并从中提取数据

angularjs - 混合 HTML5 和自定义 angularjs 验证

javascript - AngularJS 没有更新?

javascript - 在 if 条件下从 Bootstrap 选项卡获取模型值

jquery - ui jquery 可拖动元素

javascript - 客户端自动提交表单

javascript - 如何仅为 POST 请求创建 Node 服务器

javascript - 在将 ReactJS 组件放入 DOM 之前在内存中渲染它

ios - 在collectionView中拖放单元格时创建一个新部分?