2016-09-12 28 views
6

Đây là tập lệnh demo của chúng. Làm cách nào để yêu cầu trường đó được yêu cầu?

var confirm = $mdDialog.prompt() 
    .title('What would you name your dog?') 
    .textContent('Bowser is a common name.') 
    .placeholder('Dog name') 
    .ariaLabel('Dog name') 
    .initialValue('Buddy') 
    .targetEvent(ev) 
    .ok('Okay!') 
    .cancel('I\'m a cat person'); 

$mdDialog.show(confirm).then(function(result) { 
    $scope.status = 'You decided to name your dog ' + result + '.'; 
}, function() { 
    $scope.status = 'You didn\'t name your dog.'; 
}); 

Hiện tại, bạn có thể nhập một trường rỗng và sau đó xác nhận nhanh chóng, gây ra hộp thoại để đóng và chức năng thành công để bị khiêu khích với một giá trị kết quả không xác định

Lý tưởng nhất, tôi muốn một lỗi thông báo xuất hiện và hộp thoại vẫn mở khi một trường trống tồn tại.

tôi chắc chắn rằng tôi có thể đạt được điều này với một hộp thoại tùy chỉnh, nhưng đã hy vọng có một khung cảnh dễ dàng mà tôi đang thiếu

+0

Tôi xem xét điều này và sẽ tốn khá nhiều thao tác hộp thoại promt và cuối cùng sẽ sạch hơn khi sử dụng tùy chỉnh hộp thoại. –

Trả lời

0

bạn có thể kiểm tra ở đây

$mdDialog.show(confirm).then(function(result) { 
    if(result!=undefined) 
    { 
     $scope.status = 'You decided to name your dog ' + result + '.'; 
    }else 
    { 
     alert("Wrong Input Enter "); 
    } 

} 

đọc tài liệu ở đây https://material.angularjs.org/latest/api/service/ $ mdDialog

+3

Từ câu hỏi - "Lý tưởng nhất, tôi muốn một thông báo lỗi xuất hiện và hộp thoại vẫn mở khi một trường trống tồn tại." –

+0

Không may, vào thời điểm sau đó (hàm()) được gọi, hộp thoại đã bị đóng – kane

0

Chỉ giải pháp tôi biết đó là tạo mẫu tùy chỉnh cho thành phần mdDialog.

$scope.showPrompt = function(user) { 
$mdDialog.show({ 
    templateUrl: 'app/views/your-dialog.tpl.html', 
    locals: { 
     callback: $scope.yourFunction // create the function $scope.yourFunction = function (yourVariable) { 
    }, 
    controller: function ($scope, $mdDialog, callback) { 
     $scope.dialog.title = 'Your title'; 
     $scope.dialog.abort = function() { 
      $mdDialog.hide(); 
     }; 
     $scope.dialog.hide = function() { 

      if ($scope.Dialog.$valid){ 
       $mdDialog.hide(); 
       callback($scope.yourReturnValue, likes the return of input field); 
      } 
     }; 
    }, 
    controllerAs: 'dialog', 
    bindToController: true, 
    clickOutsideToClose: true, 
    escapeToClose: true 
}); 

};

2

Tôi chạy ngang qua này và theo Vật liệu góc 1.1.5 có một tùy chọn bắt buộc mới trong chuỗi nhắc giải quyết vấn đề này. Tài liệu tham chiếu chưa được cập nhật, nhưng bản trình diễn hiển thị mức sử dụng:

var confirm = $mdDialog.prompt() 
    .title('What would you name your dog?') 
    .textContent('Bowser is a common name.') 
    .placeholder('Dog name') 
    .ariaLabel('Dog name') 
    .initialValue('Buddy') 
    .targetEvent(ev) 
    .required(true) // <---- New required option 
    .ok('Okay!') 
    .cancel('I\'m a cat person'); 
Các vấn đề liên quan