【发布时间】:2017-10-02 20:43:38
【问题描述】:
我有两个下拉菜单(ddls)。当页面加载时,第一个 ddl 会加载数据。用户可以在第一个 ddl 中做出选择,然后根据第二个 ddl 填充源(每次动态发生)。
在这些下拉菜单下方,有添加按钮。如果用户在新行中再次单击添加按钮,则会出现两个下拉菜单,然后适用相同的场景。通过添加按钮可以添加更多行。
除了两个ddls之外,还有一个删除按钮,可以通过按下可以删除的特定行来删除。
毫无疑问,我怎样才能得到下面描述的特定格式的愿望 json 数组。
我想要这样的json数组....
$scope.project=[{
securityId: "first Dropdown selected value" ,
contactId:"second Dropdown selected value"
}]
(如果只有一行)
对于 2 行,我希望 $scope.project 的长度大小为 2,并且具有期望和适当的值。 对于第 n 行,$scope.project 的长度应该是 n 并具有适当的值....
看过已经制作好的小提琴,你会了解更多。请检查您的浏览器控制台。我得到 $scope.project 数组,但不是必需的格式。
对于 Angular 爱好者来说可能很容易。我不知道为什么我没有得到解决方案。
http://jsfiddle.net/micronyks/ZwwH7/6/
html
<html ng-app>
<div ng-controller="ctrl">
<div ng-repeat="additional in additionals">
<select ng-model="additional.securityId" ng-change="selectRoles(additional.securityId,additional)" ng-options="w.securityId as w.securityRoleName for w in SecurityRoles"></select>
<select ng-model="additional.personId" ng-change="selectperson(additional.personId,additional)" ng-options="w.personId as w.personName for w in additional.Personsddl"></select>
<button ng-click="remove($index)">remove</button>
</div>
<button ng-click="add()">add row</button>
</div>
</html>
.js 文件...
function ctrl($scope) {
$scope.additionals=[{}];
$scope.project=[{}];
$scope.SecurityRoles = [{
securityId: 1,
securityRoleName: "SuperAdmin"
}, {
securityId: 2,
securityRoleName: "Admin"
}
, {
securityId: 3,
securityRoleName: "Guest"
}];
$scope.Persons = [{
personId: 1,
contactId:1,
personName: "john"
}, {
personId: 2,
contactId:1,
personName: "jack"
},{ personId: 3,
contactId:2,
personName: "Johnson"
},{ personId: 4,
contactId:2,
personName: "rock"
},
{ personId: 5,
contactId:3,
personName: "bank"
}];
$scope.selectRoles=function(id,additional)
{
additional.Personsddl=[];
angular.forEach($scope.Persons,function(record){
if(record.contactId==id)
{
additional.Personsddl.push(record);
}
});
$scope.project.push({roleId:id});
}
$scope.add=function()
{
$scope.additionals.push({});
}
$scope.remove=function($index){
$scope.additionals.splice($index,1);
}
$scope.selectperson=function(id)
{
$scope.project.push({contactId:id});
console.log($scope.project);
}
}
【问题讨论】:
标签: angularjs