0

saveInterview の終了後に実行される Angular コントローラー内で次の findTimelineEntries 関数を取得しようとしています。

$scope.saveInterview = function() {
        $scope.interviewForm.$save({employeeId: $scope.employeeId}, function() {
            $scope.findTimelineEntries();
        });
    };

保存アクションは、タイムライン エントリの一部でもあるデータを追加または編集するため、更新されたタイムライン エントリを表示したいと考えています。まず、これを次のように変更してみました。

$scope.saveInterview = function() {
        var functionReturned = $scope.interviewForm.$save({employeeId: $scope.employeeId});
        if (functionReturned) {
            $scope.findTimelineEntries();
        }
    };

後でこれに:

$scope.saveInterview = function() {
        $scope.interviewForm.$save({employeeId: $scope.employeeId});
    };

    $scope.saveInterview.done(function(result) {
        $scope.findTimelineEntries();
    });

最後に、約束に関する情報を見つけたので、これを試しました:

    $scope.saveInterview = function() {
        $scope.interviewForm.$save({employeeId: $scope.employeeId});
    };

    var promise = $scope.saveInterview();
    promise.done(function() {
        $scope.findTimelineEntries();
    });

しかし、どういうわけか、http://nurkiewicz.blogspot.nl/2013/03/promises-and-deferred-objects-in-jquery.htmlに従ってこのように機能するという事実は、私が同じものを使用できるという意味ではありませんこれらの $scope.someFuntcion = function() 関数のメソッド:-S

4

1 に答える 1

1

これは promise を使用したサンプルです。まず、コントローラに $q を含める必要があります。

$scope.saveInterview = function() {
   var d = $q.defer();
   // do something that probably has a callback. 
   $scope.interviewForm.$save({employeeId: $scope.employeeId}).then(function(data) {
      d.resolve(data);  // assuming data is something you want to return. It could be true or anything you want.
   });


   return d.promise;

}
于 2013-05-21T14:15:21.137 に答える