Javascript 如何在angularjs中调用服务
我正在显示angularjs文件以列出autocomplete,现在我添加了新的服务文件以获取一些数据。我想将服务数据发送到应用程序代码中,我不知道如何将服务与控制器代码连接。当我尝试连接时,出现语法错误。请修改代码并指导我获取服务数据。这是完整的示例,向您展示如何在带有控制器的angularjs中使用Javascript 如何在angularjs中调用服务,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,我正在显示angularjs文件以列出autocomplete,现在我添加了新的服务文件以获取一些数据。我想将服务数据发送到应用程序代码中,我不知道如何将服务与控制器代码连接。当我尝试连接时,出现语法错误。请修改代码并指导我获取服务数据。这是完整的示例,向您展示如何在带有控制器的angularjs中使用服务: var-app=angular.module(“app”,[]); 应用程序控制器(“ctrl”,功能($scope,service){ $scope.alert=函数(){ servi
服务
:
var-app=angular.module(“app”,[]);
应用程序控制器(“ctrl”,功能($scope,service){
$scope.alert=函数(){
service.alert();
}
$scope.console=函数(){
service.console();
}
})
应用程序服务(“服务”,功能(){
this.alert=函数(){
警惕(“嘿”)
}
this.console=函数(){
console.log(“嘿”)
}
})
警觉的
安慰
这就是编写服务的方式-
我更喜欢工厂:
(function() {
'use strict';
angular
.module('autocompleteCustomTemplateDemo', ['ngMaterial'])
.controller('DemoCtrl', DemoCtrl);
function DemoCtrl($timeout, $q, $log, $scope, $http) {
var self = this;
$scope.service_details = [];
$scope.productdetail == [];
$scope.add = function() {
$scope.show_servicelist = true;
$scope.type = function(e) {
alert(e);
}
$scope.service_details.push(JSON.parse($scope.productdetails));
}
self.simulateQuery = false;
self.isDisabled = false;
self.repos = loadAll();
self.querySearch = querySearch;
self.selectedItemChange = selectedItemChange;
self.searchTextChange = searchTextChange;
function querySearch(query) {
var results = query ? self.repos.filter(createFilterFor(query)) : self.repos,
deferred;
if (self.simulateQuery) {
deferred = $q.defer();
$timeout(function() {
deferred.resolve(results);
}, Math.random() * 1000, false);
return deferred.promise;
} else {
return results;
}
}
function searchTextChange(text) {
$log.info('Text changed to ' + text);
}
function selectedItemChange(item) {
$log.info('Item changed to ' + JSON.stringify(item));
$scope.productdetails = JSON.stringify(item);
}
function loadAll() {
var repos = [{
'product_gid': '1',
'product_name': 'stabilizer',
'forks': '16,175',
}, {
'product_gid': '2',
'product_name': 'stand',
'forks': '760',
}, {
'product_gid': '3',
'product_name': 'ac',
'forks': '1,241',
},
];
return repos.map(function(repo) {
repo.value = repo.product_name.toLowerCase();
return repo;
});
}
function createFilterFor(query) {
var lowercaseQuery = angular.lowercase(query);
return function filterFn(item) {
return (item.value.indexOf(lowercaseQuery) === 0);
};
}
}
})();
app.service("productservice", function($http) {
this.getproduct = function() {
deggure
var response = $http.get("/Productjson/");
return response;
}
});
在这里;s控制器
(function() {
'use strict';
angular
.module('app')
.factory('productservice', productservice);
function productservice($q, $http) {
return {
getproduct : getproduct
};
function getproduct(){
var d = $q.defer();
$http({
method: 'GET',
url: 'url'
}).success(function(response){
d.resolve(response);
}).error(function(response){
d.reject(response);
});
return d.promise;
}
}
})();
$http
返回一个承诺,使用$q
它是一个@AlekseySolovey嘿,谢谢你的链接,我没有想到,实际上我不是在积极研究angularjs我现在搬到ng2了你能用这个答案解决你的问题吗?问OP不是你我的代码工作很好兄弟,当调试我的数据未通过抛出过滤器时,请解释如何传输数据抛出过滤器
(function() {
'use strict';
angular
.module('app')
.controller('AppController', AppController);
function AppController(
$scope, productservice
) {
function getproduct(){
productservice.getproduct().then(function(response){
//got the response here
}, function(){
});
}
}
})();