javascript - 赋值后丢失的 Angular ,对象属性

标签 javascript angularjs object

我正在尝试使用 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,这很有效。

最佳答案

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

您是否至少需要以某种方式将完成的事件推送到 $scope.user.socialPortal.campaigns 数组中?

关于javascript - 赋值后丢失的 Angular ,对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45834665/

相关文章:

javascript - Morris.js 与 codeigniter 不显示数据

javascript - 如何从php调用js函数?

javascript - setDate() 意外累积天数

javascript - angularjs x 可编辑控件在完成或取消后失去焦点

performance - 我可以使用 Grails session 来存储整个域对象吗?

java - 使用 Rally JAVA Rest API 2.0 创建新计划时出现的问题

c# - 如何使用 javascript 设置 asp.net 's label ' s 文本并在服务器端获取设置值

javascript - Angular UI 选择不显示

javascript - AngularJS 身份验证和基于 XSRF token

javascript - 从对象数组中的值组合数组?