Как добавить роль пользователю при сохранении пользователя?

У меня есть два объекта, имеющих отношение как пользователь → роль (один пользователь ко многим ролям). Теперь я пытаюсь спасти этого пользователя, вот мой код:

<div class="row">
<br>
<div class="panel-default">
    <div class="panel-heading">{{addOrUpdateLabel}}</div>
    <div class="panel-body">
        <form role="form" class="col-xs-6">
            <div class="form-group">
                <label for="">Enter Email</label>
                <input type="text" class="form-control" ng-model="user.email" ng-disabled="disableEmailField"></input>
                <p class="help-block"></p> 
            </div>
            <div class="form-group">
                <label for="">Enter Name</label>
                <input type="text" class="form-control" ng-model="user.name"></input>
                <p class="help-block"></p> 
            </div>
            <div class="form-group">
                <label for="">Enter Contact Number</label>
                <input type="text" class="form-control" ng-model="user.contact"></input>
                <p class="help-block"></p> 
            </div>
            <div class="form-group">
                <label for="">Add Role to User</label><br>
                <select ng-model="currentRole" ng-options="r for r in rolesArray" style="width:380px; height:30px;">
                <option value="">Select role</option></select>
                <p class="help-block"></p> 
            </div>
            <div class="form-group" ng-hide="hidePasswordField">
                <label for="">Enter Password</label>
                <input type="text" class="form-control" ng-model="user.password"></input>
                <p class="help-block"></p> 
            </div>
            <div class="form-group">
                <button class="btn btn-success" type="submit" ng-click="save(user)" ng-show="showAddButton">Save</button>
                <button class="btn btn-success" type="submit" ng-click="update(user)" ng-show="showUpdateButton">Update</button>
                <button class="btn btn-primary" type="submit" ng-click="clear()">Clear</button>
                <a href="/users/all"><button class="btn btn-danger">Cancel</button></a>
            </div>                      
        </form>
    </div>
</div>

У меня есть roleArray, который содержит некоторые предопределенные роли, такие как:

$scope.rolesArray = ["USER", "ADMIN", "DBA"];
  1. Моя проблема в том, как добавить роль (моя ng-model = "currentRole") в модель пользователя. моя модель пользователя выглядит так: {"id": "1", "username": "xyz@abc.com", "password": "******", "roles": {"id": "1", "rolename" :"ПОЛЬЗОВАТЕЛЬ"}}
0
0
43
1

Ответы 1

Добавьте выбранные роли в объект user методом save. Хотя currentRole не содержит идентификаторов для роли, поэтому не знаю, как их получить.

public save(user): void {
  angular.forEach(this.currentRole, (role)=> {
    user.roles.push({id: role.id, rolename: role.name});
  }
}

Другие вопросы по теме