Angular JS中的双呼叫控制器?

时间:2015-05-13 15:36:58

标签: angularjs

我有控制器和执行AJAX请求的方法:

.controller('EditProfileController', ['$scope', '$http') {
   // Do AJAX query here

   // Some methods for update profile
}]);

Angular JS 文件中还有$routeProvider

.config(function ($routeProvider) {
    $routeProvider
        .when('/profile/personal/:type', {
            templateUrl: '/personal.html',
            controller: 'EditProfileController'
    })
}

问题是当我用URL /profile/personal/:type打开页面时,它再次调用控制器EditProfileController并在其中调用AJAX方法。

我该如何解决?

HTML 代码:

<div ng-controller="EditProfileController">
   <!-- Here are loaded data from AJAX response
</div>

解决方案: 问题是在模板中加倍ng-view

<div ng-show="isLoaded" ng-view></div>
<div ng-show="!AILoading" ng-view></div>

1 个答案:

答案 0 :(得分:7)

只需从HTML中删除ng-controller指令,因为路由器已经在处理此