给定此模块和控制器
angular.module('contactServices', ['ngResource']).
factory('ApiKey', function ($resource) {
return $resource('/V1/apikeys', {}, {
query: {method: 'GET', params: {}, isArray: false}
});
});
function ContactCtrl($scope, ApiKey) {
$scope.keys = ApiKey.query();
}
返回该数据
{ myObject: [{ id: "1", value: "Value1" }, { id: "2", value: "Value2" }, { id: "3", value: "Value3" }] }
到这个HTML元素
<select style="width:350px;" tabindex="2">
<option ng-repeat="k in keys" value="{{k.id}}" >{{k.value}}</option>
</select>
当页面加载时,资源抓取数据,但它返回一个承诺,我在概念上理解,并且可以看到它已经返回数据(在加载页面之后的时间),但从未加载选择。有一次,我使用了$http服务并使其工作,但那是一段时间以前的事了,如果可能的话,我真的喜欢使用资源抽象。
谢谢你,斯蒂芬。
根据注释,这里是更新后的工作示例。实际的修复是抓取json对象并查找apiKeys对象。
<select ng-model="keys" ng-options="k.value for k in keys"></select>
function ContactCtrl($scope, ApiKey) {
ApiKey.query({}, function (data) {
$scope.keys = data.apiKeys; <<<<<<<<<<========= the fix
});
}
也许你应该在调用服务层时尝试将代码更改为这样的内容。
function ContactCtrl($scope, ApiKey) {
ApiKey.query({}, function(data){
$scope.keys = data;
});
}
毗迦