действие ng-blur не вызывается - PullRequest
0 голосов
/ 25 апреля 2019

Поле ввода генерируется с помощью ng-repeat.Входной тег включает в себя ng-model и ng-blur.Действие ng-blur не запускается, и консоль не отображает никаких ошибок.

HTML генерируется приложением Zend Framework 3.Я использую angularjs 1.7.8 и jquery 3.1.0.

Вот тело веб-страницы

<body ng-app='byDomainApp' ng-controller='ByDomainCtrl'>
<center>
    <h2>Maintenance By Domain</h2>
</center>
<p>You may edit/correct any of the following details. Note that an
    update will be ignored if the email address is changed to one that has
    been tried previously.</p>
<div class='row'>
    <div class='col-xs-3'>
        Choose a domain: <select class='form-control' ng-model="myDomain"
            ng-change="domainUsers(myDomain)"
            ng-options="domain.domain_name for domain in domains track by domain.domain_id"></select>
        <p ng-hide 'message=null' >
            <br> <br>{{message}}
        </p>
    </div>
</div>
<div class='row'>
    <div class='col-xs-2'>Name</div>
    <div class='col-xs-2'>Email</div>
    <div class='col-xs-2'>Company</div>
    <div class='col-xs-2'>Job title</div>
    <div class='col-xs-2'>Country</div>
    <div class='col-xs-2'>Confirmed?</div>
</div>
<div ng-repeat="user in users" class='row'>
    <div class='col-xs-2'>
        <input ng-model="user.user_name" ng-blur="updateUser(user)">
    </div>
    <div class='col-xs-2'>{{user.user_email}}</div>
    <div class='col-xs-2'>{{user.user_company}}</div>
    <div class='col-xs-2'>{{user.user_jobtitle}}</div>
    <div class='col-xs-2'>{{user.user_country}}</div>
    <div class='col-xs-2'>{{user.user_confirmed}}</div>
</div>

Угловой код Javascript

angular.module('byListApp', []).constant("listUrl",
        "http://elms2.com/list-rest").constant("userUrl",
        "http://elms2.com/user-rest").controller(
        "ByListCtrl",
        function($scope, $http, listUrl, userUrl) {
            $scope.hide = true;
            $scope.showMessage = false;
            $http.get(listUrl + '/' + ownerId).then(function(response) {
                $scope.lists = response.data;
            }, function(error) {
                $scope.error = error;
                alert(error);
            });

            $scope.listUsers = function(list) {
                $scope.message = '';
                $scope.hide = true;
                $scope.showMessage = false;
                // $scope.booksFound[0].message = '';
                $http.get(userUrl + '/byList:' + list.list_id).then(
                        function(response) {
                            $scope.users = response.data;
                        });
            };
        });
angular.module('byDomainApp', []).constant("domainUrl",
        "http://elms2.com/domain-rest").constant("userUrl",
        "http://elms2.com/user-rest").controller(
        "ByDomainCtrl",
        function($scope, $http, domainUrl, userUrl) {
            $scope.hide = true;
            $scope.showMessage = false;
            $http.get(domainUrl).then(function(response) {
                $scope.domains = response.data;
            }, function(error) {
                $scope.error = error;
                alert(error);
            });

            $scope.domainUsers = function(domain) {
                $scope.message = '';
                $scope.hide = true;
                $scope.showMessage = false;
                $http.get(userUrl + '/byDomain:' + domain.domain_id).then(
                        function(response) {
                            $scope.users = response.data;
                        }, function(error) {
                            $scope.error = error;
                            alert(error);
                        });
            };

            $scope.updateUser = function(user) {
                $http.get(userUrl + '/updateUser:' + user).then(
                        function(response) {
                            $scope.userData = response.data;
                        }, function(error) {
                            $scope.error = error;
                            alert(error);
                        });
            };
        });

Список доменов сформирован правильно, а ng-повторная заливка правильных данных при выборе домена.Однако ничего не происходит, когда содержимое поля ввода редактируется, а затем теряет фокус.Я могу доказать это, удалив функцию updateUser из углового кода или заменив действие ng-blur на предупреждение или подобное.

1 Ответ

0 голосов
/ 27 апреля 2019

Это сейчас работает, и я не могу объяснить почему, поскольку ничего не изменилось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...