これは前に尋ねたことがありますが、私はajax呼び出しを含む関数をどのように連鎖させるかを考えようとしています。私が持っているものは次の通りです:角関数の連鎖
$scope.firstFunc();
$scope.secondFunc();
secondFuncは、firstFuncから設定されたスコープ値をチェックします。どのように私はこれをチェーンできますか?
これは前に尋ねたことがありますが、私はajax呼び出しを含む関数をどのように連鎖させるかを考えようとしています。私が持っているものは次の通りです:角関数の連鎖
$scope.firstFunc();
$scope.secondFunc();
secondFuncは、firstFuncから設定されたスコープ値をチェックします。どのように私はこれをチェーンできますか?
たとえば次のような機能を持っている場合:
$scope.firstFunc = function() {
return $http
.get('/api/objects')
.then(function(data) {
$scope.data = data;
});
};
$scope.secondFunc = function() {
return $http
.get('/api/otherObjects')
.then(function(data) {
// do something with new 'data' and with $scope.data
});
};
あなたは、このような順序でそれらを呼び出すことができます。
$scope.firstFunc().then($scope.secondFunc);
は私が正しく理解と仮定。
$scope.firstFunc()
は、(それがその最初の.then
チェーンを終了した後に)約束$http.get
が返さ返さ
そして、我々はその同じ約束のために別の.then
をチェーン、および$scope.secondFunc
を実行することを告げました。
:
$scope.firstFunc = function() {
return $http
.get('/api/objects');
};
$scope.secondFunc = function(previousData) {
return $http
.get('/api/otherObjects')
.then(function(data) {
// do something with 'previousData' from the previous call from $scope.firstFunc
});
};
をして$scope.secondFunc
はなく直接$scope.firstFunc()
のデータを受信するよう$scope.firstFunc().then($scope.secondFunc)
ですべてを呼び出しますそれが何とかあなたが最初に欲しかったものなら、$scope
を通過しなければなりません。そうでなければ、この答えの最初の部分は私が思うでしょう。
これが役に立った!
約束を返して使用する必要があります。 – SLaks
@slaksそれぞれのメソッドから$スコープを返すことはできますか? –
「これは以前に尋ねられたことがわかっています」前の質問の答えについて何を理解していませんでしたか? –