0

腳本

if (true) { 
    if(!confirm("Are you sure ?")) 
    { 
    event.preventDefault(); 
    } 
    } 

我怎麼能叫角材質對話框,而不是默認的JavaScript確認?類似於

function(event) { 
     var confirm = $mdDialog.confirm() 
      .title('Are you sure ?') 
      .targetEvent(event) 
      .ok('ok') 
      .cancel('cancel'); 

     $mdDialog.show(!confirm).then(function() { 
      event.preventDefault(); 
     }); 
    }; 
+0

非'confirm()'對話幾乎都是異步,需要一個回調,而不是返回值。 – dandavis

回答

1

請檢查此筆。只需通過ng-click中的$event並使用材料庫提供的$mdDialog服務打開警報對話框。 http://codepen.io/next1/pen/KzvwXq

HTMLFILE

<md-button class="md-primary md-raised" ng-click="showConfirm($event)"> 
    Confirm Dialog 
</md-button> 

JS文件

$scope.showConfirm = function(ev) { 
var confirm = $mdDialog.confirm() 
     .title('Are you sure?') 
     .textContent('Are you really sure?') 
     .ariaLabel('Lucky day') 
     .targetEvent(ev) 
     .ok('Yes') 
     .cancel('No'); 

$mdDialog.show(confirm).then(function() { 
    $scope.status = 'Yes'; 
}, function() { 
    $scope.status = 'No'; 
}); 
+0

謝謝,但它不是按鈕點擊。相反,我使用它的形式$骯髒的檢查 –

+1

你可以觀看你的表單集合的'$髒'的任何變化,並調用函數來打開dialoge。再次檢查筆。我做了一些改變。 – nextt1

+0

更新了您的答案,該答案確實如預期顯示了警報。但是,它不會阻止'event.preventDefault();'直到用戶確認它。謝謝 –