繁体   English   中英

重新加载页面后显示警报消息

[英]Display alert message after page reload

我必须打电话给$route.reload(); 在控制器2的addData API调用中,这样我就可以在UI中获取添加的数据。 但是,由于页面刷新,“数据成功添加”文本消失了。

控制器1:

  $rootScope.$on('reloaded', function(event, data) { 
         $scope.$parent.alerts.length=0;
         $scope.$parent.alerts.push({type: 'success',msg: 'Data added successfully'});
    });

控制器2:

 $scope.add = function() {
someAPIService.addData(JSON.stringify($scope.rows)).success(function(response) {
            ngDialog.close('ngdialog1');
            $route.reload();
            $rootScope.$emit('reloaded', "true");
        });
}

HTML部分:

<section>
     <div ng-controller="controller3">
     <alert ng-repeat="alert in alerts" type="{{alert.type}}" close="closeAlert($index)">{{alert.msg}}</alert>
     </div>

     <div class="row form-inline" ng-controller="controller2 as vm">
       <!-- Table data with text fields--> 
     </div>

    <script type="text/ng-template" id="addDataDialog">

    <div id="frm" ng-controller="controller1" class="col-xm-6">

    <div class="form-group">
      <!-- Labels with text fields--> 
    </div>

      <button class="ngdialog-button" ng-click="add()">Save</button>
    </div>
    </script>
    </section>

注意:两个控制器都在同一JS文件中,并且它们用于同一HTML文件。

您只想加载服务器端的最新记录列表。 然后就不需要使用$route.reload(); 拨打电话后。 您只需要进行ajax调用即可获取可以解决您的问题的最新记录列表。 要制作ajax,您需要参考$http

仅当您需要在$routeProvider使用指定模板再次加载控制器时才使用$route.reload()

只是一个简单的答案提示:

  1. 在调用reload之前添加一个(特定的)cookie(使用javascript)(例如使用Cookies lib ),
  2. 重新加载时阅读
  3. 然后将其删除

同样,您可以使用本地存储(如果可用)来代替Cookie,请使用相同的步骤:

  1. 在调用reload之前在本地存储中添加特定条目
  2. 重新加载时阅读
  3. 然后将其删除

维护客户端状态的另一种方法是使用url参数,但这些参数不会重新加载页面

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM