gpt4 book ai didi

javascript - 如何使用 AngularJS 获得 promise 结果

转载 作者:行者123 更新时间:2023-11-30 13:48:12 24 4
gpt4 key购买 nike

以下是用于从共享点检索信息的 Controller 。我可以看到调试条目 data.d.UserProfileProperties.results[115].Value 具有我需要在 View 中呈现的属性值。我如何从结果 promise 中获得该值(value)?

(function() {
'use strict'
var createPurchasingCardController = function($scope, $rootScope, $filter, $window, $location, $timeout, requestService) {

$scope.actionTitle = "";
$scope.counter = [];

var getCurrentUserData = function () {

var dfd = new $.Deferred();
var queryUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/SP.UserProfiles.PeopleManager/GetMyProperties";
$.ajax({
url: queryUrl,
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: onSuccess,
error: onError,
cache: false
});

function onSuccess(data) {
dfd.resolve(data);
}

function onError(data, errorCode, errorMessage) {
dfd.reject(errorMessage);
}

return dfd.promise();
}

var _init = function () {
$scope.counter = getCurrentUserData();
console.log($scope.counter);
}

_init();

}

angular.module('myApp').controller('createPurchasingCardController', ['$scope', '$rootScope', '$filter', '$window', '$location', '$timeout', 'requestService', createPurchasingCardController]);
}());

我试图将它放入柜台,但它没有出现。任何帮助将不胜感激。

最佳答案

不使用 jQuery .ajax,而是使用 $http 服务:

function getCurrentUserData() {
var queryUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/SP.UserProfiles.PeopleManager/GetMyProperties";
var promise = $http({
url: queryUrl,
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
cache: false
}).then(function(response) {
return response.data;
}).catch(function(response) {
console.log("ERROR", response);
throw response;
});

return promise;
}

然后从返回的promise中提取数据:

function _init() {                
var promise = getCurrentUserData();

promise.then(function(data) {
$scope.counter = data;
console.log($scope.counter);
});
}

_init();

$http 服务返回的 promise 与 AngularJS 框架集成。只有在 AngularJS 执行上下文中应用的操作才能从 AngularJS 数据绑定(bind)、异常处理、属性监视等中受益。

有关详细信息,请参阅

关于javascript - 如何使用 AngularJS 获得 promise 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58870169/

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