在控制器中使用工厂 return 未定义
using factory in the controller return undefined
我正在尝试使用 ng-click
中的函数将值从我的视图发送到控制器,然后使用该值将其传递到我的工厂,该工厂将从其余部分提取数据 api link ,但是我发送的值 return 没有任何错误,这是我的代码
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, idService) {
$scope.getSo = function (id){
$scope.myIDs = idService.getID(id);
};
});
app.factory('idService', function($http,$q) {
var oGetID = {};
oGetID.getID = function(id) {
var deferred = $q.defer();
$http.get('http://citysdk.dmci.hva.nl/CitySDK/pois/'+id).then(function(response){
deferred.resolve(response.data);
});
return deferred.promise;
};
return oGetID;
});
</script>
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<a href="#" ng-click ="getSo('52527290c5cddb0a7cb654ca');">send variable</a>
{{myIDs.location.address.value}}
</div>
</body>
</html>
这是响应的控制台结果
异步调用无法按照您在这里期望的方式工作。然后异步发生,他们 return return 基于 API 服务器调用的数据。在 ajax 成功后,您应该期望值,将 .then
放在它上面。作为内部 $http
方法的 return promise
.
idService.getID(id).then(function(response){
alert(response);
$scope.myIDs = response;
})
我正在尝试使用 ng-click
中的函数将值从我的视图发送到控制器,然后使用该值将其传递到我的工厂,该工厂将从其余部分提取数据 api link ,但是我发送的值 return 没有任何错误,这是我的代码
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, idService) {
$scope.getSo = function (id){
$scope.myIDs = idService.getID(id);
};
});
app.factory('idService', function($http,$q) {
var oGetID = {};
oGetID.getID = function(id) {
var deferred = $q.defer();
$http.get('http://citysdk.dmci.hva.nl/CitySDK/pois/'+id).then(function(response){
deferred.resolve(response.data);
});
return deferred.promise;
};
return oGetID;
});
</script>
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<a href="#" ng-click ="getSo('52527290c5cddb0a7cb654ca');">send variable</a>
{{myIDs.location.address.value}}
</div>
</body>
</html>
这是响应的控制台结果
异步调用无法按照您在这里期望的方式工作。然后异步发生,他们 return return 基于 API 服务器调用的数据。在 ajax 成功后,您应该期望值,将 .then
放在它上面。作为内部 $http
方法的 return promise
.
idService.getID(id).then(function(response){
alert(response);
$scope.myIDs = response;
})