我必须在控制器2 $route.reload();
API调用中调用addData
,以便我可以在我的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文件。
答案 0 :(得分:1)
因为您只想加载服务器端的最新记录列表。然后在发布电话后不需要使用$route.reload();
。您只需要进行ajax调用即可获得可以解决问题的最新记录列表。要制作ajax,您需要参考$http
$route.reload()
仅在您需要加载时才会使用 再次使用$routeProvider
中指定模板的控制器 条件
答案 1 :(得分:0)
只是一个简单的答案提示:
如果可以使用local storage而不是使用相同的步骤,则可以使用https://drive.google.com/file/d/0BzKbcezW-5hYNElaUXZHT3dGa2s/view?usp=sharing:
维护状态客户端的另一个选择是使用url参数,但这些不会用于页面重新加载