无法使用Angular.js从表中删除预期的行

时间:2016-05-25 05:35:16

标签: javascript angularjs

我有一个问题。我需要使用Angular.js从我的应用程序的表结构中删除一个特定的行。我的代码存在于下面的plunkr链接中。

code is present here

在上面的代码中为星期一创建3行并填写所需的数据,所有这些都应该与每一行不同。使用-按钮删除中间行,您可以检查最后一行子类别是否显示错误。这是我的问题。我需要,如果我删除行数据应该从数组中删除的任何特定行,其他行将与所选数据保持不变。请帮助我。

1 个答案:

答案 0 :(得分:1)

我编辑了你的plunker:https://plnkr.co/edit/4okaCC?p=preview

您的问题在于您在ng-repaet中使用$ index。删除中间行时,第三行的$ index会发生变化,并引用错误的catgeory。 我更改您的plunker以使用返回子类别的函数取决于所选类别:

$scope.getSubCategoryFor = function(answer) {
if(!answer.category) {
  return [];
}

  console.log(answer);
  var result = $filter('filter')(subcategories, {id:answer.category.id});
  console.log('result', result);
  return result;
}

我在html中使用它:

<table>
        <tbody>
          <tr ng-repeat="answer in d.answers">
            <td>
              <select class="form-control" id="answer_{{$index}}_subcategory" name="answer_{{$index}}_subcategory" ng-model="answer.subcategory" ng-options="sub.name for sub in getSubCategoryFor(answer)">
                <option value="">Select Subcategory</option>
              </select>
            </td>
          </tr>
        </tbody>
      </table>

我希望这会对你有所帮助