gpt4 book ai didi

javascript - 在javascript中循环遍历angular js数组

转载 作者:行者123 更新时间:2023-11-30 10:09:49 24 4
gpt4 key购买 nike

我有一个返回 List<KeyValuePair<string, byte>> 的网络 API到一个 Angular js 工厂。然后我使用 ->

在选择中呈现它
<select ng-model="survey.surveyType" class="form-control" id="surveyType">
<option ng-repeat="surveyType in surveyTypes" value="{{surveyType.value}}">{{surveyType.key}}</option>
</select>

这很好用。 Angular 循环并正确显示对象。在与 web api 方法交谈时,我已经像这样配置了它 ->

app.factory('Survey', ['$resource', function ($resource) {
return $resource('http://localhost:52133/api/surveyapi/:id', null,
{
'update': { method: 'PUT' },
'getSurveyTypesAsDictionary': { method: 'GET', isArray: true, url: 'http://localhost:52133/api/surveyapi/GetSurveyTypesAsDictionary' }
});
}]);

// fetching the values in my controller
var surveyTypes = Survey.getSurveyTypesAsDictionary();

现在我的问题是这个。我无法循环结果。在控制台中,对象看起来像这样 ->

enter image description here

但是,如果我尝试获取我的 Angular 数组中的值,那里什么也没有。例如surveyTypes.length为 0。

问题。我如何使用 JavaScript 使用数组?谢谢!

编辑:我试图只返回 Dictionary<string, byte>来自 web api,但我根本没有让它工作。

编辑,对 Sergiu 的评论:

var promise = Survey.getSurveyTypesAsDictionary();
promise.$promise.then(function (response) {
console.log(response.length);
});

为了让你的建议奏效,我必须得到 $promise从对象。这是正确的还是我需要配置我的工厂以使其按照您编写的语法工作?

最佳答案

首先,返回的资源对象 具有提供高级行为的操作方法,无需与低级$http 服务交互。

例如

Post.query(function(data) {
$scope.posts = data;
});

或者,您还可以通过返回对象的 $promise 属性访问原始 $http promise

 var req = Post.query().$promise;
req.then(function(data) {
$scope.posts = data;
});

关于javascript - 在javascript中循环遍历angular js数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27128888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com