AngularJS 模型绑定在从

Posted

技术标签:

【中文标题】AngularJS 模型绑定在从【英文标题】:AngularJS model binding breaks when deleted from 【发布时间】:2014-03-03 14:36:24 【问题描述】:

我正在构建一个 AngularJS 应用程序来创建多项选择测验。问题和相关选项被添加到以下模型中或从以下模型中删除。

$scope.testFormChoiceCount = [
question: '', choices: [
    choice: '',
    choice: '',
    choice: ''
  ]
,
question: '', choices: [
    choice: '',
    choice: '',
    choice: ''
  ]
,
];

我的问题案例是: 我添加了一个问题,并将一个新对象添加到模型数组中。然后,如果我删除例如第一个问题,模型绑定会中断,导致最后一个问题的输入在我尝试输入时抛出“b is undefined”错误。

我做错了整个 ng-model 绑定吗?谁能帮我解决这个问题。

小提琴: http://jsfiddle.net/D7M2Z/

这是我从模型数组中删除和对象的方法

$scope.removeQuestion = function(index)
  $scope.testFormChoiceCount.splice(index, 1);

【问题讨论】:

它对我有用。删除所有问题后无法添加。 如果你删除所有问题,就没有模型可以建立了。这是我还没有阻止的事情。但是,如果您添加一个问题并删除前一个问题,则最后一个问题会中断。对此有什么想法吗? 【参考方案1】:

这应该可以帮助你jsfiddle

在这一行:

   for( var i=0; i<$scope.testFormChoiceCount[0].choices.length; i++ )
      newobject.choices.push(new Object(choice : ''));
   

当您删除所有对象时,$scope.testFormChoiceCount[0].choices.length 没有值

【讨论】:

感谢您清除此问题。我最终不得不处理它。然而,这不是困扰我的问题。如果一开始您删除了第一个问题,则无法再写入剩余的选项字段。关于此绑定为何出错的任何想法? 这是错误的: 我没有时间,但是您需要考虑如何以其他方式解决 outerIndex,这会带来更多问题。如果你不解决这个问题,我稍后再试。 谢谢! outerindex 值确实存在问题。或者更好地说,我使用 ng-init。从较低的索引中删除对象后,choises-array 收到错误的值。

以上是关于AngularJS 模型绑定在从的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS2

[angularjs] angularjs系列笔记模型

如何将 Mongoose 模型与 angularjs 复选框绑定

通过 AngularJS 中的模型绑定更改 Kendo 图表类型

AngularJs 模型

angularjs 的模型无法绑定到隐藏域(input hidden)