2016-01-20 33 views
0

我是AngularJs的新手,我有一個問題,當我運行我的應用程序時,工廠函數調用兩次。我想通過從Factory函數調用函數來防止。在angularjs服務中防止自動調用函數

這裏是我的代碼: -

advisoryApp.config(function ($routeProvider) { 
    $routeProvider 
      .when('/', { 
       templateUrl: 'pages/home.html', 
       controller: 'mainCtrl' 
      }) 
      .when('/about', { 
       templateUrl: 'pages/about.html', 
       controller: 'aboutController' 
      }) 
      .when('/contact', { 
       templateUrl: 'pages/contact.html', 
       controller: 'contactController' 
      }); 
}); 

advisoryApp.factory('HttpResponse', function ($http) { 
    return{ 
     getHttpResponse: function (method, url, data) { 
      return $http({ 
       url: url, 
       method: method, 
       data: data 
      }) 
     } 
}); 

advisoryApp.controller('mainCtrl', function ($scope, HttpResponse, $rootScope) { 
    $scope.allAdvisoryData = ''; 
    var segment_id = 5; 
    var url = $rootScope.base_url + "web_service/call_listing/" + segment_id; 
    var data = 'segment_id=' + segment_id; 

    $scope.message = 'Everyone come and see how good I look!'; 
    HttpResponse.getHttpResponse('POST', url, data).success(function (data) { 
     console.log(data); 
    }); 
}); 

這裏是我的輸出: -

這裏API即POST http://localhost/advisory_mandi/web_service/call_listing/5通話兩次,但我想,它應該調用一次。 enter image description here

回答

2

最常見的原因是您初始化控制器兩次。 幾個選項:

  • 控制器從路由器和HTML與ng-controller
  • 兩次初始化應用初始化。也許你從HTML
+0

調用ng-app兩次

  • 從JavaScript應用程序的自舉也沒錯..!原因是我有兩次初始化控制器。 – vineet