我的应用程序中有三个部分页面,我使用ng-View指令路由到页面。我还有单独的页面控制器。现在在两个页面中我正在进行http调用以获取/发布数据,其中我使用服务来调用REST API。
现在每次我被路由到一个页面时我面临的问题,它再次被加载(执行正在进行http调用的函数)。
在这样的帖子中,我看到这是默认行为,但如果是这样,我该怎样才能防止这种情况发生。我看到的链接是: The link
现在我怎么能防止这种情况发生,我真的不需要在第一次加载页面时加载页面。
代码片段如下..
在index.html中 要呼叫页面链接:
...
<md-button class="md-primary" ng-href="#/">Report</md-button>
<md-button class="md-primary" ng-href="#about">About</md-button>
...
<div ng-view></div>
....
在partial1.html中,我没有分配任何控制器。
在App.js文件中,设置路由配置...
angular
.module('webApp')
.config(function ($routeProvider) {
$routeProvider
.when('/', {
//url: "/report",
templateUrl: 'pages/report.html',
controller: 'ReportController'
})
.when('/about', {
templateUrl: 'pages/about.html',
controller: 'aboutController'
})
.....
在控制器....
angular
.module('webApp')
.controller('ReportController',
function ($scope, $log, $mdDialog, webAppService) {
var GetReportsFromDB = function () {
webAppService.GetReports().success(function (rptData) {
var dd = JSON.parse(rptData);
rptvm.reports = dd;
}).error(function (response) {
console.log(response);
}).then(function () {
});
};
GetReportsFromDB();
...
在服务中......
angular
.module('webApp')
.service('webAppService', ['$http', function ($http) {
var svc = {};
svc.GetReports = function () {
console.log('loading...');
return $http({
method: 'GET',
url: 'http://somedomain/api/mycontroller/myaction',
});
};
......
我是AngularJS的新手。任何帮助将不胜感激。
提前致谢, Arpan