angularjs - 带有 ng-model-options 的指令无法向模型数组添加新元素

标签 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);

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

最佳答案

在这段代码中:

            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

关于angularjs - 带有 ng-model-options 的指令无法向模型数组添加新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27267659/

相关文章:

javascript - Angular ui-router 在路径参数后扩展 url

http - 如何从angularjs调用外部休息服务?

javascript - 如何在 Angular 中设置属性的值?

javascript - Angular 2 : trying to update ngModel with onModelChange inside the controller

javascript - 在 javascript 或 angularjs 中解析 url

javascript - 如何从 Angular 范围调用外部 Controller

javascript - Angular : can't access a variable inside an element. 绑定(bind)在我的 Angular 指令中,这样我就可以用它来操作 DOM

javascript - Angular4 真的是双向数据绑定(bind)吗?

javascript - 如何 $setdirty 到单个输入

javascript - 从数组填充 ng-pattern