2015-04-28 3 views
5

Malzeme Tasarımında mdDialog ayrıntılarını okuyordum ve bir uyarı açılır penceresinin neden bir söz vereceğini anlayamadım. Birisi bir örnek üzerinden mdDialog tarafından bir sözün nasıl iade edildiğini açıklayabilir mi?Angularjs Materyal Tasarımında bir iletişim penceresi açılırsa nasıl bir iade yapılabilir?

$ mdDialog kritik bilgileri hakkında kullanıcıları bilgilendirmek veya kararlar bulunmalarını isteme uygulama üzerinde bir diyalog açar

Materyal Tasarımı mdDialog belgeleri

aşağıdaki söyledi. Kurulum için iki yaklaşım vardır: basit bir söz API'si ve düzenli nesne sözdizimi. muhtemelen close gibi farklı bir şekilde gelecekteki olaylara tepki (çözümlemek söz) ve cancel (reddetmek) istedikleri için

cevap

6

Bir promise döndürür.

mdDialod.show()

belgelerinde yazılı olarak, bir söz verir, bu yüzden ( $mdDialog hizmet close ve cancel yöntemlerle, yukarıda belirtildiği gibi) sadece gidermek veya reddedebilirsiniz.

Here is a simple example istendiği gibi (her olay için uygun metni nasıl kaydedileceğini görmek için konsolu açın).

+0

yılında söz verdiğin örnekte iade ediliyor ne olacak? – Sunil

+0

'$ mdDialog.show()'. 'sonra' çağrıldıktan sonra sağa zincirleme. vaat ekibinin açısal ekibi tarafından uygulanmasını okumanız gerekir https://docs.angularjs.org/api/ng/service/$q –

4

Dokümanlar biraz belirsiz düşündüm, ama işte böyle çalıştım. BaseController içinde

:

$mdDialog.show({/*modalOptions*/}) 
    .then(function(data) { 
    console.log(data); 
    }, function(err) { 
    console.error(err); 
    }).finally(function() { 
    // finally block is optional for cleanup 
    }); 

modal kontrolörü

$scope.cancel = function() { 
    $mdDialog.cancel('user pressed canceled'); 
}; 

$scope.ok = function() { 
    $mdDialog.hide({message: 'here is some result data'}); 
};