Angular JS:将对象推入数组。它正在创建一个对象,然后是另一个数组。我需要它来创建单独的对象。这可能吗?

时间:2015-10-06 15:49:07

标签: javascript arrays angularjs object push

添加" multiple = true"在我的选择中,它将一个对象数组分别添加到模型而不是每个对象。

这就是我想要的:

{
    teams: [
      {name: 'team1'},
      {name: 'team2'},
      {name: 'team3'}
    ]
}

但我得到

{
    teams: [
      {name: 'team1'},
      {name: ['team2','team3']}
    ]
}

http://i.imgur.com/ILxWhpX.png

数据结构问题的图片。

2手动放入的团队是对象。使用md-select的团队是一个对象中的数组。

$scope.baseGitblituser = {
    CODE HERE DELETED FOR READABILITY, WAS FOR OTHER USER FIELDS
    teams:
      [{name: "xignorex All Users"},
      {name: "Test Users"}]
};

这将启动用户的范围,并手动添加所有用户将包含的全局团队。

// this is created elsewhere using $scope.gitblitUser = angular.copy($scope.baseGitblituser);
$scope.gitblitUser.teams.push({name:user.team});

这是在单击md-select按钮创建新用户时调用的函数的一部分。这就是团队数组如何与新团队一起更新。

  <md-select ng-model="user.team" multiple="true" name="teams" placeholder="your default team " style="min-width: 200px;">
         <md-optgroup label="">
               <md-option ng-value="team.name" ng-repeat="team in teams">{{team.name}}</md-option>
                            </md-optgroup>

这是HTML部分。

1 个答案:

答案 0 :(得分:2)

因此,Kevin B推荐给我的链接可能已经有效......但它对我来说有点兴趣并且很多地改变了我的HTML。但!我在那里看到了for循环......即使它的使用方式不同,它也让我有机会尝试使用for循环来单独从对象中拉出对象。

$scope.gitblitUser.teams.push({name:user.team}); 

已更改为 -

for (var i=0; i < user.team.length; i++){ $scope.gitblitUser.teams.push({name: user.team[i]}); } 

所以最终......你的链接帮助激发了for循环思想 - 所以非常感谢你!

以为我会在这里发布这个,因为任何人都会遇到我将来做的问题。