Я новичок в angularjs. Я хочу обновить набор ролей для одного пользователя. Я добавлю свой код и схему, ниже этого кода я не могу получить объект, который мне нравится, пожалуйста, просмотрите приведенный ниже код.
HTML:
<section class="surround" style="overflow-y:scroll;min-height: 600px;">
<form name="userrole" ng-submit="addRoles();" novalidate>
<div class="row">
<div class="col-xs-4">
<div class="row form-group">
<div class="col-xs-offset-5">
<h4>Create User</h4>
</div>
</div>
<div class="row form-group" ng-class="{ 'has-error': submitted && branchForm.name.$error.required }">
<div class="col-xs-5 form-label">
<label>Roles name</label>
</div>
<div class="col-xs-6 control">
<input type="text" class="form-control" ng-model="roles.rolename" name="rolename" required="" />
</div>
</div>
<div class="row form-group">
<div class="col-xs-5 form-label">
<label>Status</label>
</div>
<div class="col-xs-6 control">
<select class="form-control" ng-model="roles.status" name="status">
<option value="1">Active</option>
<option value="0">Deleted</option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-10">
<div class="branch-table">
<table class="table table-bordered">
<colgroup>
<col width="20%">
<col width="20%">
<col width="20%">
<col width="20%">
<col width="20%">
</colgroup>
<thead>
<tr>
<th>Transaction</th>
<th>No Access</th>
<th>Read Only</th>
<th>Read/Write</th>
<th>Full</th>
</tr>
</thead>
<tbody>
<tr>
<td><label for="Accounting"><input type="checkbox" id="Accounting" ng-true-value="Accounting" ng-model="roles.transaction.name">Accounting</label></td>
<td><input type="radio" name="group1" ng-model="roles.transaction.access.noaccess" data-ng-value="true" /></td>
<td><input type="radio" name="group1" ng-model="roles.transaction.access.read_permit" data-ng-value="true" /></td>
<td><input type="radio" name="group1" ng-model="roles.transaction.access.write_permit" data-ng-value="true" /></td>
<td><input type="radio" name="group1" ng-model="roles.transaction.access.full" data-ng-value="true" /></td>
</tr>
<tr>
<td><label for="Accounting"><input type="checkbox" id="Accounting" ng-true-value="Accounting" ng-model="roles.transaction.name">Property</label></td>
<td><input type="radio" name="group2" ng-model="roles.transaction.access.noaccess" data-ng-value="true" /></td>
<td><input type="radio" name="group2" ng-model="roles.transaction.access.read_permit" data-ng-value="true" /></td>
<td><input type="radio" name="group2" ng-model="roles.transaction.access.write_permit" data-ng-value="true" /></td>
<td><input type="radio" name="group2" ng-model="roles.transaction.access.full" data-ng-value="true" /></td>
</tr>
<tr>
<td><label for="Accounting"><input type="checkbox" id="Accounting" ng-true-value="Accounting" ng-model="roles.transaction.name">Contact</label></td>
<td><input type="radio" name="group3" ng-model="roles.transaction.access.noaccess" data-ng-value="true" /></td>
<td><input type="radio" name="group3" ng-model="roles.transaction.access.read_permit" data-ng-value="true" /></td>
<td><input type="radio" name="group3" ng-model="roles.transaction.access.write_permit" data-ng-value="true" /></td>
<td><input type="radio" name="group3" ng-model="roles.transaction.access.full" data-ng-value="true" /></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-4 form-group">
<div class="pull-left">
<button type="submit" class="btn btn-sm btn-primary">Save</button>
<button ng-click="cancel()" class="btn btn-sm btn-default">Cancel</button>
</div>
</div>
</div>
</form>
</section>
Когда вы нажимаете на save, я получаю объект таким образом,
{
"rolesname": "superadmin",
"status": 1,
"transaction": [
{
"name": "property",
"access": {
"noaccess": "true",
}
}
]
}
Я получаю только один объект за раз.
я хочу получить объект, подобный этому,
Данные объекта:
{
"_id": "ROLE01",
"description": "superadmin",
"status": "active",
"transaction": [
{
"name": "property",
"access": {
"read_permit": "true"
}
},
{
"name": "property",
"access": {
"read_permit": "true"
}
}
{
"name": "property",
"access": {
"read_permit": "true"
}
}
]
}
Я не получаю эту транзакцию как три объекта. Как добиться этого в угловом, я не знаю, где я делаю worng. Спасибо в авансах.
Вы связываете одни и те же свойства на одном и том же объекте. В вашем примере transaction
- это объект, а не массив. Значения Group1 переопределяются значениями group2, а затем значениями group3.
Это решает вашу проблему:
<tr>
<td><label for="Accounting"><input type="checkbox" id="Accounting" ng-true-value="Accounting" ng-model="roles.transaction[0].name">Accounting</label></td>
<td><input type="radio" name="group1" ng-model="roles.transaction[0].access.noaccess" data-ng-value="true" /></td>
<td><input type="radio" name="group1" ng-model="roles.transaction[0].access.read_permit" data-ng-value="true" /></td>
<td><input type="radio" name="group1" ng-model="roles.transaction[0].access.write_permit" data-ng-value="true" /></td>
<td><input type="radio" name="group1" ng-model="roles.transaction[0].access.full" data-ng-value="true" /></td>
</tr>
<tr>
<td><label for="Accounting"><input type="checkbox" id="Accounting" ng-true-value="Accounting" ng-model="roles.transaction[1].name">Property</label></td>
<td><input type="radio" name="group2" ng-model="roles.transaction[1].access.noaccess" data-ng-value="true" /></td>
<td><input type="radio" name="group2" ng-model="roles.transaction[1].access.read_permit" data-ng-value="true" /></td>
<td><input type="radio" name="group2" ng-model="roles.transaction[1].access.write_permit" data-ng-value="true" /></td>
<td><input type="radio" name="group2" ng-model="roles.transaction[1].access.full" data-ng-value="true" /></td>
</tr>
<tr>
<td><label for="Accounting"><input type="checkbox" id="Accounting" ng-true-value="Accounting" ng-model="roles.transaction[2].name">Contact</label></td>
<td><input type="radio" name="group3" ng-model="roles.transaction[2].access.noaccess" data-ng-value="true" /></td>
<td><input type="radio" name="group3" ng-model="roles.transaction[2].access.read_permit" data-ng-value="true" /></td>
<td><input type="radio" name="group3" ng-model="roles.transaction[2].access.write_permit" data-ng-value="true" /></td>
<td><input type="radio" name="group3" ng-model="roles.transaction[2].access.full" data-ng-value="true" /></td>
</tr>