如何保存具有相同名称和ID的复选框选择

时间:2015-06-28 09:31:53

标签: javascript angularjs

我正在寻找逻辑如何创建与其父元素一起选择的子元素之间的关系,以区分服务器以知道在特定父元素下选择了该选项。

例如在我的下一个问题中,我想知道在服务器端的父母(Andy,John或Murray)下选择了Math

我有以下代码

    <li ng-repeat="student in Students">
    <input type="checkbox" class="checkbox" id="{{student[0].Id + $index + $parent.$index}}"/>
    <label for="{{student[0].Id+ $index + $parent.$index}}"><span class="Radiobox-txt" id="{{student[0].Name}}">{{student[0].Name}}</span></label>
    <ul>
        <li ng-repeat="subject in student.Subjects">
            <input type="checkbox" id="{{subject.Id+ $index + $parent.$index}}" ng-model="subject.Checked" />
            <label for="{{subject.Id+ $index + $parent.$index}}"><span id="{{subject.Name}}">{{subject.Name}}</span></label>
        </li>
    </ul>
</li>

上面的代码会生成如下所示的UI,并显示复选框选项:

Andy
    Math
    English
    Computer
John
    Math
    English
    Computer
Murray
    Math
    English
    Computer

目前,以下是我的代码,其中我将所选孩子的Id推送到数组中。

可能我需要修改此代码以同时推送父ID以及子ID,因此在服务器上我可以知道关系但不确定是否连接parentId或其他方式。 想法好吗?

$scope.studentDetail.PermissionIds = [];
angular.forEach($scope.permissions, function (p) {
var selectedPermissions = $filter('filter')(p.Children, { Checked: true });
for (var i in selectedPermissions) {
$scope.studentDetail.PermissionIds.push(selectedPermissions[i].Id);

2 个答案:

答案 0 :(得分:0)

使用student.id而不是student [0] .id。我猜这是独特的吗?

答案 1 :(得分:-2)

据我所知,在html中, id 必须是唯一的。我认为没有任何办法