Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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-无法从childs更新模型_Javascript_Angularjs - Fatal编程技术网

Javascript Angularjs-无法从childs更新模型

Javascript Angularjs-无法从childs更新模型,javascript,angularjs,Javascript,Angularjs,如果表单有一个动态ng repeat,一个按钮用于向lis添加新项目,一个按钮用于删除项目,一个按钮用于保存所有项目。我可以添加新项目并删除它们。在save按钮上,我将模型somedata传递给save方法。但是在somedata对象中,它仍然包含删除的项?我忘了什么吗 提前谢谢 <ul> <li ng-repeat="item in items track by $index"> <input ng-model="somedata[foo][$ind

如果表单有一个动态ng repeat,一个按钮用于向lis添加新项目,一个按钮用于删除项目,一个按钮用于保存所有项目。我可以添加新项目并删除它们。在save按钮上,我将模型somedata传递给save方法。但是在somedata对象中,它仍然包含删除的项?我忘了什么吗

提前谢谢

<ul>
  <li ng-repeat="item in items track by $index">
     <input ng-model="somedata[foo][$index]">
     <input ng-model="somedata[bar][$index]">
     <button ng-click="removeItem($index)">remove</button>
  </li>
</ul>

<button ng-click="addItem()">add</button>
<button ng-click="saveInputs(somedata)">remove</button>

****

$scope.removeItem = function(id) {
   $scope.items.splice(id, 1);
}

$scope.saveInput = function(input) {
   console.log(input) # -> contains also deleted data???
}

我很抱歉,我不能要求澄清,因为我没有50的声誉,所以如果这个答案是劣质的,那么我请求您的原谅

看起来您想知道为什么使用按钮删除项目并不能删除正在控制台中打印的元素。这样做的原因是,当您从项目列表中删除时,您从未实际接触过somedata对象

我对你的问题的理解已经附上了一封信

概述的代码段管理items集合,但至少没有从我在此处收集的内容映射到您的somedata集合

我提议这样做是为了解决这个问题或类似问题:

$scope.removeItem = function(id) {
   $scope.items.splice(id, 1);
   $scope.somedata.splice(id, 1);
};

你能提供更多关于代码的细节吗,比如说,什么是somedata?我猜您还需要从一些数据中删除元素。这只是一个简化的代码。Somedata只是一个伪名称,它是一个对象数组,-1是什么原因?
$scope.removeItem = function(id) {
    $scope.items.splice(id, 1);
};
$scope.removeItem = function(id) {
   $scope.items.splice(id, 1);
   $scope.somedata.splice(id, 1);
};