AngularJS:如何防止每次部分页面路由时加载角度控制器

时间:2016-03-25 11:07:51

标签: angularjs

我的应用程序中有三个部分页面,我使用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

0 个答案:

没有答案