【问题标题】:Angular, object property lost after assignment角度,对象属性在分配后丢失
【发布时间】:2017-08-23 08:35:50
【问题描述】:

我正在尝试使用 Angular 为对象设置新属性。我可以看到该属性设置了正确的值,但是当我想用另一个函数保存它时,该属性就消失了。

这是我目前所拥有的:

$scope.confirmTask = function(taskId, taskString){
   campaignTaskCompleted(taskId, $scope.campaign._id).then(function(task){
      //Here completed == true
      console.log("task", task);
      $scope.saveSocialPortal();
   })
}

function campaignTaskCompleted(taskId, campaignId){
    return new Promise(function(resolve){
       for(var c =0; c < $scope.user.socialPortal.campaigns.length; c++){
          if($scope.user.socialPortal.campaigns[c]._id == campaignId){
             for(var i=0; i < $scope.user.socialPortal.campaigns[c].tasks.length; i++){
                if($scope.campaign.tasks[i]._id == taskId){
                   $scope.campaign.tasks[i].completed = true;
                   resolve($scope.campaign.tasks[i]);
                }
             }
          }
       }
   })
}

$scope.saveSocialPortal = function(){
   //here completed is completely gone
   console.log("save", $scope.user.socialPortal.campaigns[0].tasks);
   $api.put('user-social-portal', {socialPortal: $scope.user.socialPortal})
   .then(function(response) {

   })
   .catch(function(reason) {
       console.log(reason);
   })
}

这是什么原因?我该怎么做才能解决这个问题?

编辑:

我混淆了不同的变量($scope.campaign$scope.user.socialPortal.campaigns),所以从一开始就出现了一些问题。 我完全重写了代码以始终使用$scope.user.socialPortal,这是可行的。

【问题讨论】:

  • 你指的是哪个属性?
  • @Haris 这是一个新属性,所以当我加载对象时它不存在。
  • 哪个对象?

标签: javascript angularjs object


【解决方案1】:

也许我读错了你的代码。但似乎您将新的completed 属性设置为true 仅在$scope.campaign.tasks[i] 上而不是在$scope.user.socialPortal.campaigns[0] 上。也许他们应该指向同一个对象?不清楚他们是否这样做。

您至少不需要以某种方式将已完成的广告系列推入$scope.user.socialPortal.campaigns 数组吗?

【讨论】:

  • 是的,我混淆了这两个变量。现在完全重写了代码,所以现在更清晰了。谢谢你敏锐的眼睛:)
  • 没问题。但它解决了你的问题吗?否则,也许您可​​以再次编辑您的问题,以更好地反映您的新知识。
  • 编辑了问题。好建议。还将您的回复标记为答案,因为这是解决此问题的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
  • 2015-01-09
  • 2021-06-12
  • 2015-04-01
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多