Controller inAngularjs中的函数

时间:2016-06-02 04:17:02

标签: javascript jquery angularjs

我有两个函数drag_drop和drag_start,在这些函数中我从控制器作用域中获取了一些数据。 我的代码就像那样

function drag_start(event) {
  event.dataTransfer.dropEffect = "move";
  event.dataTransfer.setData("text", event.target.getAttribute('id'));
}

function drag_drop(event) {
  // here I want to use  $scope from a controller        
}

控制器代码:

        institutionController.controller('institutionController',function     
            $http.get('/myResponses').then(function(myres) {
            $scope.myRps=myres.data;
            // I want to use $scope.myRps when I  drag and drop an element inside a div

HTML code:

          ul(ng-hide="siwtchCI",class="list-inline")
              li(ng-repeat="ownInst in ownInsts",draggable='true',ondragstart='drag_start(event)')
                  a(class="btn btn-default btn-org" ,role="button") {{ownInst.org.name}}


              #drop_zone(ondrop='drag_drop(event)', ondragover='return false')

问题是当我将两个函数放在控制器中时,我的html元素不再可拖动

2 个答案:

答案 0 :(得分:0)

我假设您使用过' ng' HTML方面的指令,这就是常规功能不起作用的原因。请养成一个习惯,如果要在控制器内部创建一个函数,也可以在其中放入一个范围。

$scope.drag_start = function(event){

}

$scope.drag_drop = function(event){

}

这应该可以解决问题

答案 1 :(得分:0)

尝试在范围内声明函数drag_start和drag_stop。 另外在html上你需要指定如下的内容 ondragstart =" angular.element(的document.getElementById(' XYZ&#39))。范围()拖动(事件)&#34。 这肯定会调用您在控制器中定义的拖动方法 其中xyz表示要拖动的html元素的id。