我是 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
调用两次,但我想要,它应该只调用一次。
最佳答案
最常见的原因是您初始化 Controller 两次。 几个选项:
- Controller 从路由器和带有
ng-controller
的 html 初始化 - 应用程序初始化了两次。也许你调用
ng-app
两次 - 从 JavaScript 和 html 引导的应用程序
关于javascript - 防止angularjs服务中的自动调用功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34902414/