angularjs - 尝试使用 Sequelize 在循环中从数据库中删除多个值时出错

标签 angularjs sequelize.js

我正在尝试删除用户在循环中选择的值。

        for (var i = 0; i < myArray.length; i++) {
            MyService.myMapService.delete({id: myArray[i].myId }, myArray[i], function (response) {
                    if (response.isSuccessful) {
                        MyService.removeMyValue(myArray[i].myId);
                    }
            })
        }

但是,我不断收到以下错误

angular.js:13920 TypeError: Cannot read property 'myId' of undefined



请帮忙!

最佳答案

发生的事情是,您的 for 循环正在为所有 MyService.myMapService.delete 函数调用执行,而您的 i 正在变成 myArray.length 。当 myMapService.delete 异步调用完成后,它会尝试执行 myArray[i].myId(其中 i 是数组长度,那么 myArray[i] 将是未定义的)。在这种情况下,您必须通过将其包装到自执行函数来保留值。

代码

for (var i = 0; i < myArray.length; i++) {
  (function(j) {
    MyService.myMapService.delete({
      id: myArray[j].myId
    }, myArray[j], function(response) {
      if (response.isSuccessful) {
        MyService.removeMyValue(myArray[j].myId);
      }
    })
  })(i);
}

关于angularjs - 尝试使用 Sequelize 在循环中从数据库中删除多个值时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40417698/

相关文章:

node.js - 如何先设置限制而不是创建 where 查询?

node.js - 如何在sequelize中删除多个表中的记录?

node.js - Sequelize "ignoreDuplicate: true"递增主键?

php - 使用rest api的Angularjs $http请求

angularjs - grunt bower-install 以错误的顺序放置脚本标签

javascript - $scope-less Controller 从 webapi 检索数据不会更新 AngularJS 1.3 中的绑定(bind)

AngularJS |日期过滤器似乎根本没有改变我的日期显示方式

javascript - Ionic/Angular ui-router -a href 返回错误的 URL/内容

node.js - 在 sequelize-cli 中使用 sequelize getter 和 setter

javascript - Sequelize Model.prototype.(customFunction) 不工作