Angular JS中的双呼叫控制器?

Ham*_*med 1 angularjs

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

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

   // Some methods for update profile
}]);
Run Code Online (Sandbox Code Playgroud)

$routeProvider也在这个Angular JS文件中:

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

问题是,当我用URL打开页面时,/profile/personal/:type它再次调用控制器EditProfileController并调用内部的AJAX方法.

我怎么解决它?

HTML代码:

<div ng-controller="EditProfileController">
   <!-- Here are loaded data from AJAX response
</div>
Run Code Online (Sandbox Code Playgroud)

解决方案: 问题ng-view在模板中是双重的:

<div ng-show="isLoaded" ng-view></div>
<div ng-show="!AILoading" ng-view></div>
Run Code Online (Sandbox Code Playgroud)

juc*_*uco 7

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