Как получить несколько радиокнопок для группировки в angularjs

0

Я новичок в 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. Спасибо в авансах.

Теги:

1 ответ

0
Лучший ответ

Вы связываете одни и те же свойства на одном и том же объекте. В вашем примере 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>
  • 0
    Когда я нажимаю на этот флажок, я получаю сообщение об ошибке: «Не удается прочитать свойство« имя »из неопределенного»
  • 0
    Привет, зрители. Я нашел ответ на эти вопросы и отредактировал свой ответ. Мне нужно присвоить значение false каждому ng-init = "role.transaction = [{'name': false}, {'name': false}, {'name': false}];" Спасибо всем за поддержку меня :-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню