可重复使用的Angular Material Dialog和Toast for Information Helper and Alert

时间:2016-03-14 23:25:34

标签: angularjs alert angular-material directive helper

我需要为我的项目使用合适的警报和助手,并发现角质材料非常棒。但是,不要在每个控制器的几行中粘贴,因为我需要重用它们。

1 个答案:

答案 0 :(得分:3)

我需要将它们设置为工厂,以便我可以从任何控制器调用它们。我发现它们非常有用可能对某人有用。

警报

(function () {
    'use strict';
    app.factory("showAlert", ["$mdDialog", function ($mdDialog) {
        return function (title, content, ev) {
            $mdDialog.show(
                $mdDialog.alert()
                .parent(angular.element(document.querySelector('#popupContainer')))
                .clickOutsideToClose(true)
                .title(title)
                .textContent(content)
                .ok('Ok')
                .targetEvent(ev));
        };
    }]);
})();

  1. 通过将工厂名称“showAlert”传递给控制器​​,从任何控制器调用。
  2. 确保您从html传递'$ event',例如NG-点击= “的testAlert($事件)”
  3. 如下所示
  4. app.controller('someController', showAlert) {
        $scope.testAlert = function(event)
        {
          showAlert('Alert Title Goes Here', 'This is the alert message body.', ev);
        }
    }

    信息助手

    (function () {
        'use strict';
        app.factory("showHelper", ["$mdToast", "$timeout", function ($mdToast, $timeout) {
            return function (content, startTime, duration) {
                $timeout(function () {
                    $mdToast.show(
                        $mdToast.simple()
                        .textContent(content)
                        .position('bottom left')
                        .hideDelay(duration * 1000)
                    );
                }, startTime * 1000);
            };
        }]);
    })();

    1. 通过将工厂名称“showHelper”传递给控制器​​,从任何控制器调用。
    2. 传递消息,开始帮助的时间和结束帮助的时间。
    3. 确保在下一个帮助程序计划开始之前使用多个帮助程序时,前一个帮助程序已结束
    4. 我乘以1000以在控制器中使用秒数
    5. 如下所示
    6. app.controller('someController', showHelper) {
      	$scope.testAlert = function()
      	{
      		showHelper('I am the first helper', 1, 4);
      		showHelper('I am the second helper', 6, 2);
      	}
      }