Javascript 使用接头从阵列中删除图元后。没有重置。我的代码有错误吗
下拉列表包含一个数组值。若我从下拉列表中选择一个值,它将从其工作数组中删除该值。但点击重置按钮,它应该用旧值重置。这是我的代码 HTML代码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>
<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)
}