AngularJS: выбранный идентификатор не передается в службу - PullRequest
0 голосов
/ 11 февраля 2020

Для редактирования информации о пользователе, когда я меняю роль пользователя и отправляю форму, старый «идентификатор» передается службе, однако, когда я меняю роль, он показывает, что идентификатор изменен (я печатаю его на экран

Выбранное значение: {{selectedItemvalue}}

). но все же старый «идентификатор» передается так, как если пользовательская роль - администратор с идентификатором № 2, и если я изменяю его на пользователя с идентификатором № 1, следует передавать роль с идентификатором 1 вместо 2, а старый - 2.

Я проверил ниже сообщение, но это не сработало. AngularJS: получить выбранный элемент

     <div class="col-md-7">
            <select ng-model="selectedItemvalue">
             <option ng-repeat="role in roless" ng-       selected="selectedItemvalue ==  role.id"
            value="{{role.id}}">{{role.name}}</option>
    </select>
    <p>Selected Value is : {{selectedItemvalue}}</p>
     </div>

        <form ng-submit="submitUserForm(user.id)" name="myForm"
                class="form-horizontal">

app.controller ('usersDetailsController', функция ($ rootScope, $ scope, $ http,

      $location,$routeParams,$route) {

       if ($rootScope.authenticated && $rootScope.role=="ADMIN") {

        $scope.roless = [{"id": 1, "name": "USER"}, {"id": 2,  "name":"ADMIN"}];

        $scope.userId = $routeParams.id;
        $http({
        method: 'GET',
        url: 'http://localhost:8080/api/user/' + $scope.userId
        }).then(function (response) {

        $scope.user = response.data;
        $scope.selectedItemvalue = $scope.user.roles[0].id;
        console.log("CurrentRole..."+ $scope.selectedItemvalue);
        console.log("Current data of user..."+           JSON.stringify(response.data));});


         $scope.submitUserForm = function (userId) {

         $http({
            method: 'PUT',
            url: 'http://localhost:8080/api/user/' + userId,
            data: $scope.user

         }).then(
            function (response) {
                console.log("Updated Role data..."+ JSON.stringify(response.data));
                $location.path("/list-all-users");
                $route.reload();
                },
                function (errResponse) {
                $scope.errorMessage = "Error while updating User - Error Message: '" + errResponse.data.errorMessage;
            });
            }

Ответы [ 3 ]

0 голосов
/ 11 февраля 2020

В вашем коде вы можете проверить $ scope.selectedItemvalue = $ scope.user.roles [0] .id; . Из-за этого вы устанавливаете для 0-й роли значение $ scope.selectedItemvalue, и последнее значение переопределяется.

0 голосов
/ 14 февраля 2020

Наконец-то нашли, где проблема и проблема решена, добавив следующую строку кода в $ scope.submitUserForm ... фактически, когда вы отправляете форму, ей нужно получить идентификатор из ng-модели и установить для него идентификатор роли пользователя. вот так ...
$ scope.user.roles [0] .id = $ scope.selectedItemvalue;

0 голосов
/ 11 февраля 2020

Проблема здесь в типе данных. Это выражение value="{{role.id}}" предназначено для типа данных string. Поэтому назначьте идентификатор пользователя, как показано ниже,

$scope.selectedItemvalue = ''+$scope.user.roles[0].id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...