【问题标题】:How to place updated data into specific element?如何将更新的数据放入特定元素?
【发布时间】:2016-12-26 18:05:27
【问题描述】:

我列出了使用 ng-repeat 的项和子项。

have items = [
  {item.id:1,
   item.name :'item1',
   item.children: [
      {item.id:11,
       item.name :'child1',  
       },
       {item.id:22,
       item.name :'child2',  
       }, 
       {item.id:33,
       item.name :'child3',  
       }]  
  },
  {item.id:2,
   item.name :'item2',
   item.children: [
      {item.id:12,
       item.name :'child22',  
       },
       {item.id:23,
       item.name :'child33',  
       }, 
       {item.id:34,
       item.name :'child44',  
       }]  
  }
];

<div id = "item.id" ng-repeat="item in vm.items">
  <div>{{item.name}}</div>
  <div id = "child.id" ng-repeat="child in item.children">
    <div>{{child.name}}</div>
  </div>

比当我收到更新的孩子时,例如

       {item.id:34,
       item.name :'child44_renamed',  
       }

我想将一个子数据放入渲染它的元素中。 有办法吗?

提前感谢您的建议。

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    是的,您可以更改 items 数组对象的结构,Angular 会自动重新渲染整个对象。

    使用 JavaScript 对象和数组进行操作的最简单方法是使用库,例如​​ lodash。 您也可以使用纯 JavaScript 来实现,但使用库可以节省大量时间和精力。

    以lodash为例,你可以根据idname找到item,然后对其进行修改。

    【讨论】:

    • 谢谢。但是可以直接在渲染它的html元素中更改数组吗?
    • 为什么需要这样做?不想重新渲染?
    • 想象如果孩子也有孩子,那么孩子也有孩子。如何获取 child.array ,对其进行更改并放回其渲染的位置?
    猜你喜欢
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 2014-01-31
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多