/ / AngularJs / बूटस्ट्रैप - सूची में बिंद चेकबॉक्स ठीक से काम नहीं करता है - कोणीयज, html5

AngularJs / बूटस्ट्रैप - सूची में बाइंड चेकबॉक्स ठीक से काम नहीं करता है - angularjs, html5

मेरे पास एक भूमिका सूची है जो एक अनुमतियों की सूची को फ़िल्टर करती है। अनुमतियाँ सूची में एक चेकबॉक्स है जो यह दर्शाता है कि वह चयनित है।

प्रत्येक भूमिका में संबंधित अनुमतियों की एक सूची होती है। जब एक भूमिका का चयन किया जाता है, तो सभी उपलब्ध अनुमतियाँ प्रदर्शित की जाती हैं और जो पहले से ही उनसे जुड़ी हैं, उन्हें जाँच लिया जाएगा। प्रत्येक अनुमति के चेकबॉक्स पर क्लिक करके आप इसे संबद्ध या हटा सकते हैं।

लेकिन चयन और अचयनित अनुमति कार्रवाई ठीक से काम नहीं करती है। मैं समझ नहीं पा रहा हूं कि क्या समस्या है। क्या कोई मेरी मदत कर सकता है ? धन्यवाद!!!

प्लंकर में कोड

पेज कोड

 <div class="panel-body">
<div class="form-group">
<div class="col-md-6">
<div class="list-group">
<a ng-click="selectRole(role)" ng-repeat="role in model.roles" class="list-group-item" ng-class="{active: role.id == model.selectedRole.id}">{{role.name}}</a>
</div>
</div>
<div class="col-md-6">
<div class="list-group">
<a ng-repeat="permission in model.permissions" class="list-group-item">{{permission.name}}                  <input type="checkbox" class="pull-right" ng-checked="isSelected(permission.id) > -1" ng-click="clickPermission(permission)" ng-class="{active: permission.id == model.selectedPermission.id}" />
</a>
</div>
</div>
</div>
</div>

नियंत्रक कोड

app.controller("PermissionsToRoleController", function($scope) {

$scope.model = {
roles: [],
permissions: [],
selectedRole: null,
selectedPermission: null
};

$scope.selectRole = function(role) {
$scope.model.selectedRole = role;
}

var findRoles = function() {
$scope.model.roles = [{id: 1, name: "ADMIN", permissions: [{id: 1, name:"MASTER"}] },
{id: 2, name: "USER",  permissions: [] }
];

$scope.model.permissions = [{id: 1, name: "MASTER"}];

$scope.model.selectedRole = $scope.model.roles[0];
};

$scope.clickPermission = function(permission) {
$scope.model.selectedPermission = permission;
var idx = $scope.isSelected(permission.id);
if (idx > -1) {
$scope.model.selectedRole.permissions.splice(idx, 1);
} else {
$scope.model.selectedRole.permissions.push(permission);
}
};

$scope.isSelected = function(permissionId) {
for (var i = 0; i < $scope.model.selectedRole.permissions.length ; i++) {
if ($scope.model.selectedRole.permissions[i].id === permissionId) {
return i;
}
}
return -1;
}

findRoles();

});

उत्तर:

जवाब के लिए 0 № 1

समस्या मुझे चेकबॉक्स के रूप में मिली, ठीक से काम करते समय, जब आप उस पर क्लिक करते हैं तो डिस्प्ले "t" अनचेक करता है।

यह आसपास के तत्व को बदलकर तय किया जा सकता है span के बजाय a

<span ng-repeat="permission in model.permissions" class="list-group-item">{{permission.name}}
<input type="checkbox" class="pull-right" ng-checked="isSelected(permission.id) > -1" ng-click="clickPermission(permission)" ng-class="{active: permission.id == model.selectedPermission.id}" />
</span>

मैं इसके पीछे के कारण के बारे में निश्चित नहीं हूँ, हालाँकि।