ng-repeat不跟踪旧密钥对值

时间:2017-03-31 12:49:11

标签: angularjs angularjs-ng-repeat

我是这样的json ..

var storedData = {  
 "Feb 7, 2017":[  
   {  
     "emMessageId":1019,
     "message":"HI",
     "userId":100166,
     "imHashTagId":null,
     "taggedUser":null,
     "iconPath":"i",
     "sendMsgDate":1486469494000
   },
   {....}
 ],
"Feb 8, 2017":[  
  {  
     "emMessageId":1090,
     "message":"hi",
     "userId":100165,
     "imHashTagId":null,
     "taggedUser":null,
     "iconPath":"i",
     "sendMsgDate":1486495671000
  },
  {....}
 ]
}

现在我正在向"今天"添加更多数据像...一样的关键。

 if(!storedData['Today'])
   storedData['Today'] = [{new obj}]
 else
    storedData['Today'].push({new obj});

它添加了很好但是" ng-repeat"不跟踪旧的密钥对值。请帮助我专家,提前致谢。

Plunker Demo:https://plnkr.co/edit/YHQhC0Qibbrr5fD73fGr?p=info

1 个答案:

答案 0 :(得分:0)

此处的问题是ng-repeat在向self.storedData['Today']添加新项目时,正在处理最后添加的项目。

这是你想要的东西link。基本上我添加了一个临时数组self.todayItems,当单击“发送”按钮时,只需执行self.storedData['Today'] = angular.copy(self.todayItems);,这将创建整个数组的副本。由于添加了新数组,因此将重新评估该数组中的所有项目。