角度:将数据推入嵌套数组

塞浦路斯

我试图通过单击按钮添加子菜单,但是它不起作用。我的数据如下所示:

    $scope.menuItems = [
        {   name: 'Menu1',
            children: [
                { name: 'Sub1' },
                { name: 'Sub2'} ]
        },
        {   name: 'Menu1',
            children: [
                { name: 'Sub1' } ]
        }
    ];



   $scope.addSubItem = function() {
      $scope.menuItems.children.push({
      name: 'Test Sub Item'
      });
   };

http://plnkr.co/edit/2R5kpY2iGhiE6FEy65Ji?p=preview

米哈尔

这里的柱塞解决方案

您需要修改子菜单按钮标记,以将引用传递给按钮所在的菜单项:

<ul class="sub-menu">
  <li ng-repeat="menuItem in menuItem.children" ng-include="'sub-tree-renderer.html'"></li>
  <button class="btn btn-warning" style="margin-top: 10px;" ng-click="addSubItem(menuItem)">Add Sub Menu Item</button>
</ul>

然后在您的addSubItem函数中直接对该项进行操作,如下所示:

    $scope.addSubItem = function(item) {
      item.children.push({
        name: 'Sub' + (item.children.length + 1)
      });
    };

还要确保每次创建新项时,子数组都被定义为空数组,而不是未定义的数组:

$scope.addItem = function() {
  $scope.menuItems.push({
    name: 'Test Menu Item',
    children: []
  });
};

我建议您使用数据值对象来构造新项目,而不要使用手工输入的对象文字,就好像您在许多地方使用它们一样,很容易犯错误并导致错误,这种错误仅在某些地方发生并且耗时找。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数组推入嵌套数组JavaScript

来自分类Dev

将新字段推入嵌套数组

来自分类Dev

MongoDB $推入嵌套数组

来自分类Dev

MongoDB推入嵌套数组

来自分类Dev

角度重复嵌套数组

来自分类Dev

如何使用MongoDB C#将新对象插入(推入)嵌套数组中?

来自分类Dev

如何使用MongoDB C#将新对象插入(推入)嵌套数组中?

来自分类Dev

将 JSON 嵌套数据转换为 PHP 数组数组

来自分类Dev

将平面嵌套数据转换为单个数组

来自分类Dev

将数据插入MongoDB中的嵌套数组

来自分类Dev

将数据复制到对象的嵌套数组中

来自分类Dev

如何将数据聚合到嵌套数组输出

来自分类Dev

将Ruby中嵌套数组中的数据分组

来自分类Dev

将平面嵌套数据转换为单个数组

来自分类Dev

解析嵌套数组数据

来自分类Dev

使用Java使用setState推入和拉入嵌套数组

来自分类Dev

通过角度保存嵌套数据

来自分类Dev

如何在角度JS中将数据推送到嵌套数组中,然后将整个数据排序在一起

来自分类Dev

将嵌套标记值推入PHP数组

来自分类Dev

MongoDB查询与elemMatch嵌套数组数据

来自分类Dev

从嵌套数组中获取数据

来自分类Dev

创建嵌套数据(JSON或数组)

来自分类Dev

嵌套数组未返回正确的数据

来自分类Dev

核心数据嵌套数组数

来自分类Dev

从嵌套数组获取json数据

来自分类Dev

搜索嵌套数组并显示数据

来自分类Dev

更改嵌套数组中的数据

来自分类Dev

Rails种子数据嵌套数组

来自分类Dev

Hive 从嵌套数组中提取数据