使用ng-model-options的指令无法向模型数组添加新元素

时间:2014-12-03 09:14:08

标签: angularjs angularjs-directive angular-ngmodel

http://plnkr.co/edit/m7Pt6FdDrOThKEXoohS9?p=preview

编辑列表时,按“'放弃'”时应该放弃更改,并在按“保存”时保存更改。这部分正在运作。但是,当进入编辑模式时,我将几乎空的对象推送到数据数组,以便用户可以添加新元素,如果他们不输入任何内容,则将其删除。稍后,我将查找输入的任何更改并添加更多空元素。

问题是,保存适用于现有元素,但添加新元素并不起作用,我无法弄清楚原因。

$scope.$watch('data', function(newVal, oldVal) {
                console.log("Data change");
                console.log(newVal);
            }, true);

即使用户输入了某些内容,此代码也始终显示一个空的新对象。

1 个答案:

答案 0 :(得分:2)

在这段代码中:

            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

http://plnkr.co/edit/8FczdIhIJxKHslcr7Hve?p=preview