JavaScriptとAngularJSの新機能です。私と驚くJSとのカップルのことがあります。たとえば、私はモーダルサービスを作成しようとしていますが、私は以下の例をオンラインで見つけました。私は、モーダルが開かれている特定のラインで何が起こっているのかを理解したいと思います。ライン入力AngularJSのサービスとしてのモーダルからの応答を処理する方法
$scope.checkout = function (cartObj) {
var modalInstance = $modal.open({
templateUrl : 'assets/menu/directives/payment-processing-modal.tmpl.html',
controller : ["$scope", "$modalInstance", "cartObj", function($scope, $modalInstance, cartObj) {
$scope.submit = function() {
console.log("Submit");
//DB CALL HERE (with promise)
return "well";
};
$scope.cancel = function() {
console.log("Cancel");
$modalInstance.dismiss('cancel');
return "not so well";
};
}],
resolve : { // This fires up before controller loads and templates rendered
cartObj : function() {
return cartObj;
}
}
});
:私が理解
var modalInstance = $modal.open({
はopenメソッドが設定された構成の束と$モーダルサービスに呼ばれています。
コントローラー内にはありません。私は、特定のCRUD操作を行うために使用する消費ビューから送信されたcartObjを持っています。
私の質問は: 私は消費しているビューには、成功または失敗したかどうかを知り、データを返すことができます。どのように私は消費ビューでコールバックでこれを実装できますか?これは、「送信」ロジックがModalsのコントローラ内にあるため、混乱しています。 1.ここから何かを返すと、消費側でアクセスできなくなります。サブミットコールの中からどのように戻ってくるのですか? 2.この設定に基づいて成功とエラーを処理するにはどうすればよいですか?モーダルサービスで成功と失敗を処理し、データだけを返しますか?それとも、私は同じように、優雅に終わりを消費でそれを行うことができる方法があります:
modalService.checkout(cartObj).success(function(response){
//success handler
}).error(function(response)){
//failure handler
}
入力いただきありがとうございます、Nilesh。私がここで言及した成功と失敗のケースを考えると、コールバックはサービス内で引き起こされます。私は、モーダルコントローラのコード内から返された約束が何らかの形で消費者の側で捕らえられていないと思われる、成功と失敗のコールバックを認識していないサービスの消費者からそれを必要とします。また、私が使用しているAngularUIのバージョンは、まだuibサービスを利用していません。 – lostalien