我正在尝试在服务中使用异步函数(因此我可以从许多控制器访问它)并在单击页面上的元素时填充数组。
现在,async函数将在页面加载后立即加载。这是函数;
routesApp.factory('angRoutes', function($http) {
var angRoutes = {
async: function() { <----------- How to call this function with params
var data = $.param({
query: 'top' <------------------- HOW TO PASS SOMETHING HERE
}); <-- I need to use ng-click="update('top')"
var config = {
headers : {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
}
}
var promise = $http.post('../ajax-php.php', data, config)
.success(function (data, status, headers, config) {
$('#ajaxLoader').hide(); /// hiding the loading gif
return data;
})
.error(function (data, status, header, config) {
return data = "Data: " + data +
"<hr />status: " + status +
"<hr />headers: " + header +
"<hr />config: " + config;
});
return promise;
}
};
return angRoutes;
});
和控制器;
routesApp.controller('topRoutesCtrl', function topRoutesCtrl($scope,$http, angRoutes) {
angRoutes.async().then(function(data) {
$scope.angRoutes = data;
console.log(data);
});
});
我想使用相同类型的异步函数更新$scope.angRoutes
,但我需要将数据传递给函数。例如;
<div ng-controller="navRoutesCtrl" class="c prise">c
<img ng-click="update()" data-query="top" class= "priseimg" src="../images/prises/c-s.png">
<div class="arrow-all arrow-c">
TOP ROUTES
</div>
</div>
我用jquery来做这件事,我会从de data-query属性获得帖子的查询参数。
现在我想把它变成;
<div ng-controller="navRoutesCtrl" class="c prise">
<img ng-click="update('top')" class= "priseimg" src="../images/prises/c-s.png">
<div class="arrow-all arrow-c">
TOP ROUTES
</div>
</div>
如何更改服务异步功能并将.post查询设置为我传递给更新的内容(&#39;查询&#39;)。
我如何重写该功能,以便我可以使用ng-click
我希望发生完全相同的事情,但是来自不同的控制器和控制器,它将使用不同的查询调用异步函数。
基本上我需要调用一个async $ http函数(结果来自数据库并作为Json发送)来自ng-click,至少有一个查询参数。