Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs使用单个列表进行拖放_Javascript_Angularjs - Fatal编程技术网

Javascript Angularjs使用单个列表进行拖放

Javascript Angularjs使用单个列表进行拖放,javascript,angularjs,Javascript,Angularjs,我有一个角度的应用程序在这 在这里,我试图通过一个列表来实现拖放功能 以下是应用程序: app.controller('MainCtrl', function($scope) { $scope.people = [ {'id':'1' ,'name':'John','category':'m'}, {'id':'2', 'name':'Jack','category':'m'}, {'id':'3','name':'Mark','category':'m'

我有一个角度的应用程序在这

在这里,我试图通过一个列表来实现拖放功能

以下是应用程序:

app.controller('MainCtrl', function($scope) {
  $scope.people = [
      {'id':'1' ,'name':'John','category':'m'},
      {'id':'2', 'name':'Jack','category':'m'},
      {'id':'3','name':'Mark','category':'m'},
      {'id':'4','name':'Ernie','category':'m'},
      {'id':'5','name':'Jane','category':'w'},
      {'id':'6','name':'Jill','category':'w'},
      {'id':'7','name':'Betty','category':'w'},
      {'id':'8','name':'Mary','category':'w'}
      ];


      $scope.addText = "";


      $scope.dropSuccessHandler = function($event,index,array){
          //array[index].category='w';
          //findAndRemove(array, id, pid);
      //    alert(index, array[index]);
          array.splice(index,1);
      };


      $scope.onDrop = function($event,$data,array){
         // $data.category='m';

         // $scope.people.splice($scope.people.indexOf($data.id), 1);

          $scope.people.push($data);
          //array.push($data);
      };

});
问题是,当我试图将一个元素从右向左放置时,控制器被彻底弄糊涂了。“接头”命令正在删除错误的名称。当我们从左到右放置一个元素时,效果很好


如何解决这个问题?

当您拖动右侧列表中的项目时,传递给dropSuccessHandler函数的索引参数是右侧列表元素的索引,而不是实际javascript数组中的索引。Jane是索引0,Jill是索引1,等等。因此,如果拖动Jill,dropSuccessHandler函数将删除索引1处的数组元素,即Jack