Как показать временное временное сообщение / уведомление после перенаправления в AngularJS? - PullRequest
0 голосов
/ 23 мая 2018

Я хотел бы показать временное сообщение прямо перед тем, как перенаправить, используя

$location.path("/customerList");

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

Я использую AngularJS 1.5.0 с начальной загрузкой 3 Цель состоит в том, чтобы предоставить возможность изменять представление для конечного пользователя, но предоставлять обратную связь об операции, которая привела к перенаправлению.«Пользователь XYZ успешно сохранен», где XYZ вполне может быть некоторым свойством JSON, возвращенным из API после сохранения.

Сообщение должно быть динамическим, когда оно отображается.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Хорошо, вот мои предложения

  1. Проверьте этот планкр (нажмите на «раздел 1» и затем нажмите кнопку, которую вы увидите на этом маршруте) .Вы не можете передать параметр, используя $location с сообщением, потому что это загрязнит ваш URL.Таким образом, вы можете создать сервис для хранения этих данных.Кроме того, создайте контроллер уровня сайта для обработки логики уровня сайта.

app.js

app.controller('siteCtrl',function($rootScope,$scope,msgSvc,$timeout){

 $scope.$on('$routeChangeStart', function($event, next, current) { 
   var timer ;
    if(next.$$route.originalPath === '/two'){
      $scope.msg = msgSvc.getMsg();
      timer = $timeout(function(){
           $scope.msg = '';
           msgSvc.setMsg('');
      },2000);
    }
 });
})

function OneController($scope,$location,msgSvc){
    $scope.doSomething = function(){
      // set some msg and then go the route
        msgSvc.setMsg('Success navigation from Section 1');
        $location.path("/two");
    };
}
Создайте компонент, который может прослушивать это событие и отображать его соответствующим образом.
0 голосов
/ 23 мая 2018

как насчет использования событий для $ location ($ locationChangeStart / $ locationChangeSuccess) или использования приведенного ниже кода

$scope.$on('$routeChangeStart', function($event, next, current) { 
   // ... you could trigger something here ...
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...