初心者ここに。私のプロジェクト内の「service.js」の角のモジュールから次のコードスニペットを考えてみましょうAngularJS - 非同期呼び出しを正しくフォーマットする
::私は私の特定のユースケースに合わせて私のコントローラ内で非同期呼び出しを構築する必要があるかを理解しようとしています
function getSearchObjects(projectName, title) {
var payload = JSON.stringify({
"title": title
});
var request = $http({
method: 'post',
url: URL + '/search/' + projectName,
data: payload
});
return request.then(handleSuccess, handleError);
};
function runQuery(projectName, fromDate, toDate, sort, direction, columns) {
var from = Date.parse(fromDate);
var to = Date.parse(toDate);
var payload = JSON.stringify({
"fromDate": from,
"toDate": to,
"sort": sort,
"direction": direction,
"columns": columns
});
console.log(payload);
var request = $http({
method: 'post',
url: URL + '/query/' + projectName,
data: payload
});
return request.then(handleSuccess, handleError);
}
function handleSuccess(response) {
return response.data;
};
function handleError(response) {
if (!angular.isObject(response.data) || !response.data.error) {
return($q.reject("An unknown error occurred."));
}
return $q.reject(response.data.error);
};
});
私のコントローラの中で、私は次の関数のトラブルシューティングをしようとしていますが:
$scope.submit = function() {
var objectProperties = exportsStorageService.getSearchObjects($scope.selected.project.name, $scope.selected.search)
.then(function(result) {
exportsStorageService.runQuery($scope.selected.project.name, $scope.selected.start_date, $scope.selected.end_date, objectProperties.sort, objectProperties.direction, objectProperties.columns)
},
function(error) {
console.log(error);
});
};
getSearchObjectsは、タイトル($ SCを一致しますope.selected.search)私のUIで選択し、APIの呼び出しから、以下のより詳細なオブジェクトをつかむ:
{ title: 'Duplication Example',
sort: '#_traac-timestamp',
direction: 'desc',
columns: [ '#_traac-remote_ip', 'c-platform-m-distinct-id_s', '_type' ] }
私はから選択された値をプロパティがgetSearchObjectsから返さつかむと、いくつかのユーザーと一緒にそれらを渡すためにしようとしています私のUIをrunQueryに、データベースからユーザーに返しますが、上記のロジックを使用してrunQueryに渡された値をコントローラで確認すると、次の値が得られます。私はこれをデバッグしようとしている
project_name: "Example Project"
start_date: 1499770800000
end_date: 1499943600000
sort: undefined
direction: undefined
columns: undefined
が、私は本当に私が間違っているのかを理解するために角度と非同期呼び出しを使用することにあまりにも新しいです:私はによってRunQueryに渡すしようとしていますobjectPropertiesの値のすべてが定義されていません。現在、私の推測では、getSearchObjectsから取得した値がobjectPropertiesにアタッチされる前に、runQueryを呼び出しています。どちらかまたは私は間違ってobjectProperties変数内のプロパティを参照しています。
誰かがこの問題のトラブルシューティングに役立ち、私が間違っていることをよく理解できますか?
ありがとうございました!
は、洞察力をいただき、ありがとうございます。私はあなたの提案された解決策を試しましたが、3つの結果のプロパティはまだ未定義に戻ってきています:(他のアイデア?私はこのすべての午後に困惑しています... –
@JoeyMarinello 'getSearchObjects'から返ってきたリクエストは? Chromeデベロッパーツールの「ネットワーク」タブで、あなたがそれをデバッグする方法がわからない場合 – tiagodws
'{「objectMatch」:{「タイトル」:「DOC-イベント」、「ソート」:「#_ traac-タイムスタンプ」、」 「m-doc-name_s」、「m-user_s」、「m-full-action-type_s」、「m-event-action-descriptor_s」]}} ' 私が得る応答です 。 –