http://plnkr.co/edit/m7Pt6FdDrOThKEXoohS9?p=preview
编辑列表时,按“放弃”时应放弃更改,按“保存”时保存更改。这部分正在发挥作用。但是,当进入编辑模式时,我将一个几乎空的对象推送到数据数组中,以便用户可以添加新元素,并在不输入任何内容时将其删除。稍后,我将查找输入的任何更改并添加更多空元素。
问题是,保存对现有元素有效,但添加新元素不起作用,我不明白为什么。
$scope.$watch('data', function(newVal, oldVal) {
console.log("Data change");
console.log(newVal);
}, true);
即使用户输入了某些内容,此代码也始终显示一个空的新对象。
最佳答案
在这段代码中:
if (angular.equals({tag: '', priority: ''}, $scope.data[i-1])) {
console.log($scope.data[i-1]);
$scope.data.splice(i-1, 1);
console.log("splicing 1 - " + (i - 1));
}
添加的项目始终为空。这是因为 AngularJS 不知道 $scope
已更新。解决方案是将其包装到 $timeout
中,以便使用新值更新 $scope
。
关于angularjs - 带有 ng-model-options 的指令无法向模型数组添加新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27267659/