Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 使用接头从阵列中删除图元后。没有重置。我的代码有错误吗_Javascript_Jquery_Arrays_Angularjs - Fatal编程技术网

Javascript 使用接头从阵列中删除图元后。没有重置。我的代码有错误吗

Javascript 使用接头从阵列中删除图元后。没有重置。我的代码有错误吗,javascript,jquery,arrays,angularjs,Javascript,Jquery,Arrays,Angularjs,下拉列表包含一个数组值。若我从下拉列表中选择一个值,它将从其工作数组中删除该值。但点击重置按钮,它应该用旧值重置。这是我的代码 HTML代码 <html> <head> <script src="angular/angular.js"></script> <script src="js/controllers.js"></script> </head> <body ng-app="myApp"> &l

下拉列表包含一个数组值。若我从下拉列表中选择一个值,它将从其工作数组中删除该值。但点击重置按钮,它应该用旧值重置。这是我的代码

HTML代码

<html>
<head>
<script src="angular/angular.js"></script>
<script src="js/controllers.js"></script>
</head>
<body ng-app="myApp">
<div ng-controller="exerciseTypeCtrl">
   <select id="exerciseSuperCategory" data-role="listview" ng-options="Lay.id as Lay.value for Lay in Layer " ng-model="itemsuper" ng-change="changeData(itemsuper)">
   </select> 
   <input type="button" ng-click="resetLayer()" value="Reset"/>        

</div>
</body>
</html>

angularjs控制器代码

<script>
var myApp = angular.module('myApp',[]);

myApp.controller('exerciseTypeCtrl',function($scope)
{

    $scope.Layer = [
        { id: 1, value: '0.38'},
        { id: 2, value: '0.76'},
        { id: 3, value: '1.14'},
        { id: 4, value: '1.52'},
        { id: 5, value: '1.9'},
        { id: 6, value: '2.28'},
        { id: 7, value: '2.66'},
        { id: 8, value: '3.04'},
        { id: 9, value: '3.42'},
        { id: 10, value:'3.8'},
        { id: 11, value: '4.18'},
        { id: 12, value: '4.56'}
    ];

     $scope.changeData = function(value)
      {

         var coating = $scope.Layer;
         if(coating != null)
         {
                var j = coating.length;                                 
                while(j>0)
                {
                    j =j-1;
                    var make = coating[j]['id'];    
                    var present = 0;


                        if(make == value)
                        {                                                           
                          coating.indexOf(make);
                          coating.splice(j,1);                        
                        }

                }
         }
      }
      $scope.resetLayer -function()
      {
          $scope.Layer =  $scope.Layer;
      }

});
</script> 

var myApp=angular.module('myApp',[]);
myApp.controller('exerciseTypeCtrl',函数($scope)
{
$scope.Layer=[
{id:1,值:'0.38'},
{id:2,值:'0.76'},
{id:3,值:'1.14'},
{id:4,值:'1.52'},
{id:5,值:'1.9'},
{id:6,值:'2.28'},
{id:7,值:'2.66'},
{id:8,值:'3.04'},
{id:9,值:'3.42'},
{id:10,值:'3.8'},
{id:11,值:'4.18'},
{id:12,值:'4.56'}
];
$scope.changeData=函数(值)
{
var涂层=$scope.Layer;
如果(涂层!=null)
{
var j=涂层长度;
而(j>0)
{
j=j-1;
var make=涂层[j]['id'];
var当前=0;
if(make==值)
{                                                           
涂层。indexOf(制造);
涂层拼接(j,1);
}
}
}
}
$scope.resetLayer-函数()
{
$scope.Layer=$scope.Layer;
}
});
使用“接头”,我将删除下拉选择的值。但按一下按钮,它不会复位

提前感谢

错误在这里:

$scope.resetLayer -function()
应该是

 $scope.resetLayer =function()
我正在格式化您的代码:


var myApp=angular.module('myApp',[]);
myApp.controller('exerciseTypeCtrl',函数($scope)
{
$scope.Layer=[
{id:1,值:'0.38'},
{id:2,值:'0.76'},
{id:3,值:'1.14'},
{id:4,值:'1.52'},
{id:5,值:'1.9'},
{id:6,值:'2.28'},
{id:7,值:'2.66'},
{id:8,值:'3.04'},
{id:9,值:'3.42'},
{id:10,值:'3.8'},
{id:11,值:'4.18'},
{id:12,值:'4.56'}
];
var resetArray=$scope.Layer;
$scope.changeData=函数(值)
{
var涂层=$scope.Layer;
如果(涂层!=null)
{
var j=涂层长度;
而(j>0)
{
j=j-1;
var make=涂层[j]['id'];
var当前=0;
if(make==值)
{                                                           
涂层。indexOf(制造);
涂层拼接(j,1);
}
}
}
}
$scope.resetLayer=函数()
{
$scope.Layer=重新排列;
}
});

您在此行中犯了一个错误,您将函数分配给了
resetLayer
变量

$scope.resetLayer -function(){}
这应该是正确的

$scope.resetLayer =function(){};

享受吧

初始化/获取
数据时,应复制变量

var copyOfLayer = angular.copy($scope.Layer);
然后,在重置时,您需要将旧数组分配给
$scope.Layer
,还需要将
resetLayer
函数重写到下面

  $scope.resetLayer = function() {
    $scope.Layer = angular.copy(copyOfLayer)
  }

对不起,这是我的错误
$scope.resetLayer-function()
-->$scope.resetLayer=function()@a我很高兴能帮助你,谢谢:)
  $scope.resetLayer = function() {
    $scope.Layer = angular.copy(copyOfLayer)
  }