ondragstart,ondragover,onstart - $ scope未定义

Kum*_*ati 5 javascript drag-and-drop angularjs angularjs-digest

我的任务是使用angular处理删除的文本.我一直$scope is not defined在拖放事件上遇到这个错误.知道如何解决这个问题吗?

我已经研究了角度拖放库.它们不允许拖放简单文本.他们中的大多数都使用列表.如果有一个适用于此任务,请告诉我

以下是plunker:

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

这是控制器:

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');
        }            
    };      
  }]);
Run Code Online (Sandbox Code Playgroud)

Pan*_*kar 6

$scope对象在"外角度上下文"中不可用.每当你想在JavaScript(外角世界)中访问角度范围时,你需要scope通过获取该元素的DOM然后访问它的范围来获得它,就像angular.element(document.getElementById('testApp'))身体的范围一样.

工作Plunkr

请参阅此SO答案以访问角度上下文之外的范围.