使用angularjs中的typeahead将参数从控制器传递给服务
从使用angularjs中的typeahead将参数从控制器传递给服务,angularjs,Angularjs,从SO 在控制器中有一个paramcityName,我不确定它是如何工作的 我想做的是我有一个myController.js文件 var app = angular.module("sampleApp"); app.controller('TypeaheadCtrl',['$scope','search', function ($scope, search) { $scope.displayed=[]; search.getResult(searchQuery)
SO
在控制器中有一个paramcityName
,我不确定它是如何工作的
我想做的是我有一个myController.js
文件
var app = angular.module("sampleApp");
app.controller('TypeaheadCtrl',['$scope','search', function ($scope, search) {
$scope.displayed=[];
search.getResult(searchQuery)
.then(function (data) {
$scope.displayed = (data.records);
});
}]);
myService.js
angular.module('sampleApp').factory('search', ['$q', '$http', function ($q, $http) {
var sdo = {
getResult: function (searchQuery) {
var promise = $http({
method: 'GET',
url: 'http://somewhere.com'
params: {
q: "a"
}
});
promise.success(function (data, status, headers, conf) {
return data;
});
return promise;
}
}
return sdo;
}]);
我希望能够在typeahead框中键入第三个字符后调用服务,并将字符传递给服务您应该使用
typeahead
输入元素上的typeahead min length=“3”
选项
HTML
<input type="text" ng-model="result"
typeahead="suggestion for suggestion in getSuggestion($viewValue)"
typeahead-min-length="3"/>
由于使用了.success
功能,数据将获得returngetResult
功能。
使用。然后
链接promise,以便可以从成功回调返回数据
服务
angular.module('sampleApp').factory('search', ['$q', '$http', function($q, $http) {
var sdo = {
getResult: function(searchQuery) {
var promise = $http({
method: 'GET',
url: 'http://somewhere.com'
params: {
q: searchQuery //<-- pass parameter here
}
});
promise.then(function(response) {
//you could format data here and returned formatted result
//or you could also do some sort of validation or filtering on data
return response.data;
});
return promise;
}
}
return sdo;
}]);
angular.module('sampleApp').factory('search',['$q','$http',函数($q,$http){
变量sdo={
getResult:函数(searchQuery){
var promise=$http({
方法:“GET”,
网址:'http://somewhere.com'
参数:{
q:searchQuery/您应该在typeahead
输入元素上使用typeahead min length=“3”
选项
HTML
<input type="text" ng-model="result"
typeahead="suggestion for suggestion in getSuggestion($viewValue)"
typeahead-min-length="3"/>
由于使用了.success
功能,数据将获得returngetResult
功能。
使用。然后
链接promise,以便可以从成功回调返回数据
服务
angular.module('sampleApp').factory('search', ['$q', '$http', function($q, $http) {
var sdo = {
getResult: function(searchQuery) {
var promise = $http({
method: 'GET',
url: 'http://somewhere.com'
params: {
q: searchQuery //<-- pass parameter here
}
});
promise.then(function(response) {
//you could format data here and returned formatted result
//or you could also do some sort of validation or filtering on data
return response.data;
});
return promise;
}
}
return sdo;
}]);
angular.module('sampleApp').factory('search',['$q','$http',函数($q,$http){
变量sdo={
getResult:函数(searchQuery){
var promise=$http({
方法:“GET”,
网址:'http://somewhere.com'
参数:{
q:searchQuery/像这样更改您的服务
app.factory('search', ['$q', '$http', function($q, $http) {
var sdo = {};
sdo.getResult = function(query) {
var deferred = $q.defer();
var url = "http://someurlpath/api/" + query;
$http.get(url)
.success(function(data) {
deferred.resolve(data.data);
}).error(function(msg, code) {
deferred.reject(msg);
});
return deferred.promise;
};
return sdo;
}]);
像这样改变你的服务
app.factory('search', ['$q', '$http', function($q, $http) {
var sdo = {};
sdo.getResult = function(query) {
var deferred = $q.defer();
var url = "http://someurlpath/api/" + query;
$http.get(url)
.success(function(data) {
deferred.resolve(data.data);
}).error(function(msg, code) {
deferred.reject(msg);
});
return deferred.promise;
};
return sdo;
}]);