我问过这是几个变化,但我现在有一些明确的代码,包含我无法挖掘的错误。如何将我的服务承诺退还给我的控制器?
我有一个这样的角度服务:
.service("lookupDataService", [
'$q', '$http', '$timeout', function($q, $http, $timeout) {
this.brokers = function() {
var cachedBrokers = localStorage.getItem("brokers");
if (!cachedBrokers) {
return $http.get('/api/brokers')
.success(function (data) {
localStorage.setItem("brokers", data);
});
} else {
return $timeout(function() {
return {
"data": localStorage.getItem("brokers")
}
}, 1000);
}
}
}])
,我在我的控制器消费这项服务
$scope.loadData = function() {
$scope.promise = $q.all([
lookupDataService.brokers()
.then(function(data) { $scope.enquiriesBrokers = data; }),
]);
};
现在我知道有几个问题与此代码,但我主要关注试图从服务中返回对我的控制器的承诺。例如,$ q显然对它的承诺没有任何作用,但我向你保证它会在代码中做到。
检查服务中的数据会检索需求结果,但是当这个流向控制器时,数据是[Object object]而不是这些数组的数组。
当我没有一个时,我该如何回复承诺?
这里是JSON的样品从服务返回:
这里是HTML的一个样本:
<div class="col-sm-4">
<label for="enquiries-broker">Broker:</label>
<select ng-model="equiriesSelectedBroker" class="form-control" ng-options="broker.brokerCodeField for broker in enquiriesBrokers" id="enquiries-broker">
<option value="">Please select a broker</option>
</select>
</div>
您需要执行'$ scope.enquiriesBrokers = data.data;'在您的工厂控制器的成功方法中 –
谢谢@pankajparkar我已经添加了该代码。 – serlingpa
是否解决了您的问题? –