How to set up an Angular Material dialog with a custom template
Forked from Marcy Sutton's Pen Angular Material Basic App.
Forked from Marcy Sutton's Pen Angular Material Basic App.
How to set up an Angular Material dialog with a custom template
Forked from Marcy Sutton's Pen Angular Material Basic App.
Forked from Marcy Sutton's Pen Angular Material Basic App.
| <html lang="en" ng-app="StarterApp"> | |
| <head> | |
| <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/angular_material/0.7.1/angular-material.min.css"> | |
| </head> | |
| <body layout="column" ng-controller="AppCtrl"> | |
| <md-toolbar layout="row"> | |
| <h1>Angular Material Complex Dialog</h1> | |
| </md-toolbar> | |
| <div layout="row" flex> | |
| <div layout="column" flex id="content"> | |
| <md-content layout="column" flex class="md-padding"> | |
| <md-button class="md-primary" ng-click="showDialog($event)">Launch Dialog</md-button> | |
| </md-content> | |
| </div> | |
| </div> | |
| <!-- Angular Material Dependencies --> | |
| <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.min.js"></script> | |
| <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular-animate.min.js"></script> | |
| <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular-aria.min.js"></script> | |
| <script src="//ajax.googleapis.com/ajax/libs/angular_material/0.7.1/angular-material.min.js"></script> | |
| </body> | |
| </html> |
| var app = angular.module('StarterApp', ['ngMaterial']); | |
| app.controller('AppCtrl', ['$scope', '$mdDialog', function($scope, $mdDialog){ | |
| var alert; | |
| $scope.showDialog = showDialog; | |
| $scope.items = [1,2,3]; | |
| function showDialog($event) { | |
| var parentEl = angular.element(document.querySelector('md-content')); | |
| alert = $mdDialog.alert({ | |
| parent: parentEl, | |
| targetEvent: $event, | |
| template: | |
| '<md-dialog aria-label="Sample Dialog">' + | |
| ' <md-content>'+ | |
| ' <md-list>'+ | |
| ' <md-item ng-repeat="item in ctrl.items">'+ | |
| ' <p>{{item}}</p>' + | |
| ' </md-item>'+ | |
| ' </md-list>'+ | |
| ' </md-content>' + | |
| ' <div class="md-actions">' + | |
| ' <md-button ng-click="ctrl.closeDialog()">' + | |
| ' Close Greeting' + | |
| ' </md-button>' + | |
| ' </div>' + | |
| '</md-dialog>', | |
| locals: { | |
| items: $scope.items, | |
| closeDialog: $scope.closeDialog | |
| }, | |
| bindToController: true, | |
| controllerAs: 'ctrl', | |
| controller: 'DialogController' | |
| }); | |
| $mdDialog | |
| .show( alert ) | |
| .finally(function() { | |
| alert = undefined; | |
| }); | |
| } | |
| $scope.closeDialog = function() { | |
| $mdDialog.hide(); | |
| }; | |
| }]) | |
| .controller('DialogController', function($scope, $mdDialog) { | |
| //alert( this.closeDialog ); | |
| //this.closeDialog = $scope.closeDialog; | |
| /*$scope.closeDialog = function() { | |
| $mdDialog.hide(); | |
| };*/ | |
| }); |
| md-toolbar h1 { | |
| font-size: 1.250em; | |
| font-weight: 400; | |
| margin: auto; | |
| } | |
| md-item p { | |
| margin-top: 0; | |
| } |