diff --git a/src/components/toast/toast.js b/src/components/toast/toast.js index 9793637004d..fbd761c82b9 100644 --- a/src/components/toast/toast.js +++ b/src/components/toast/toast.js @@ -50,11 +50,24 @@ function MdToastDirective() { * app.controller('MyController', function($scope, $mdToast) { * $scope.openToast = function($event) { * $mdToast.show($mdToast.simple().content('Hello!')); + * // Could also do $mdtoast.showSimple('Hello'); * }; * }); * */ +/** + * @ngdoc method + * @name $mdToast#showSimple + * + * @description + * Convenience method which builds and shows a simple toast. + * + * @returns {promise} A promise that can be resolved with `$mdToast.hide()` or + * rejected with `$mdToast.cancel()`. + * + */ + /** * @ngdoc method * @name $mdToast#simple diff --git a/src/core/services/interimElement/interimElement.js b/src/core/services/interimElement/interimElement.js index 9bb104c3ed5..1ab9184e340 100644 --- a/src/core/services/interimElement/interimElement.js +++ b/src/core/services/interimElement/interimElement.js @@ -86,6 +86,8 @@ function InterimElementProvider() { optionsFactory: definition.options, argOption: definition.argOption }; + if (definition.argOption) { + } return provider; } @@ -147,6 +149,15 @@ function InterimElementProvider() { }; }); + // Create shortcut method for one-linear methods + if (definition.argOption) { + var methodName = 'show' + name.charAt(0).toUpperCase() + name.slice(1); + publicService[methodName] = function(arg) { + var config = publicService[name](arg); + return publicService.show(config); + }; + } + // eg $mdDialog.alert() will return a new alert preset publicService[name] = function(arg) { // If argOption is supplied, eg `argOption: 'content'`, then we assume diff --git a/src/core/services/interimElement/interimElement.spec.js b/src/core/services/interimElement/interimElement.spec.js index bb9a74d2980..a06aa2beb47 100644 --- a/src/core/services/interimElement/interimElement.spec.js +++ b/src/core/services/interimElement/interimElement.spec.js @@ -157,6 +157,28 @@ describe('$$interimElement service', function() { }); }); + it('should create a shortcut show method with arg options', function() { + var shown = false; + createInterimProvider('interimTest') + .addPreset('banana', { + argOption: 'color', + methods: ['color'], + options: function() { + return { + onShow: function(scope, el, opts) { + shown = true; + expect(opts.color).toBe('yellow'); + } + }; + } + }); + inject(function(interimTest, $rootScope) { + interimTest.showBanana('yellow'); + $rootScope.$apply(); + expect(shown).toBe(true); + }); + }); + it('should show with proper options', function() { createInterimProvider('interimTest') .setDefaults({