Метод поиска, чтобы показать запись перед обновлением данных на сервере sql Angularjs asp.netmvc - PullRequest
0 голосов
/ 19 июня 2019

Угловая функция js, обновляющая некоторую запись.После обновления записи я вызываю метод поиска, чтобы отобразить данные при просмотре.

Но запись не обновляется до того вызова метода поиска, который не получает данные, поэтому при просмотре отображается ноль.

У меня есть отдельныйкнопка для поиска по нг-клик это вызов метода поиска.Через несколько секунд, если я нажму эту кнопку, отобразятся данные о просмотре.

Мой код:

vm.Update = function (value)
    {
        var test = value;
        searchCriteria = {
            From: vm.From,
            To: vm.To,
            Region: vm.Region,
            City: vm.SelectedCity
        }        
        surveyService.UpdateVisit(searchCriteria,value).then(function (d) {
            var Confrm = JSON.parse(d.data.data);
            if (d.data.status) {
                toastr.success(Updated, {
                    autoDismiss: false
                });
            }
            else {
                toastr.error(errorMsg);
            }
        });
        vm.searchVisit(0);
    }

Этот вызов и служба searchvisit не могут обновить данные в базе данных, поэтому я не получаю никаких данных.запись на просмотр.Когда я вызываю этот метод searchvisit из отдельной кнопки для поиска, он показывает запись с обновленными данными.

Надеется на ваши предложения о том, как приостановить выполнение перед вызовом метода searchvisit или любую альтернативу, что он получает какой-либо ответ, чем переместить управление выполнением в searchvisitМетод.

Спасибо

1 Ответ

1 голос
/ 19 июня 2019

Это связано с асинхронной природой в JS.

Из вашего кода surveyService.UpdateVisit(searchCriteria,value) возвращает обещание. Таким образом, когда вызывается vm.searchVisit(0);, surveyService.UpdateVisit(searchCriteria,value) еще не разрешен, что означает, что обновление все еще выполняется и не завершено. Там для vm.searchVisit(0); показаны записи, которые не обновляются.

Если ваша вторая функция зависит от значений первого вызова функции, добавьте ее, как показано ниже в обратном вызове успеха.

surveyService.UpdateVisit(searchCriteria,value).then(function (d) {
        var Confrm = JSON.parse(d.data.data);
        if (d.data.status) {
            toastr.success(Updated, {
                autoDismiss: false
            });
        }
        else {
            toastr.error(errorMsg);
        }
        //Add this here. 
        vm.searchVisit(0);
    });
...