首页 > 解决方案 > 如何在保存用户的同时为用户添加角色?

问题描述

我有两个具有用户关系的对象-> 角色(一个用户对多个角色)。现在我正在尝试保存这个用户,这是我的代码:

<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>

我有角色数组,其中包含一些预定义的角色:

$scope.rolesArray = ["USER", "ADMIN", "DBA"];
  1. 我的问题是如何将角色(我的 ng-model="currentRole")添加到用户模型。我的用户模型看起来像: {"id":"1","username":"xyz@abc.com","password":"******", "roles":{"id":" 1", "角色名":"USER"}}

标签: javascriptangularjs

解决方案


将选定的角色添加到方法中的user对象save。虽然currentRole不包含角色的 id,所以不知道如何获得这些。

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

推荐阅读