it-swarm.com.de

Positionsklasse für Toastr-Benachrichtigung ändern

Ich versuche, die Position für meinen Toast beim Div-Klick zu ändern. 

positionclass: wird nicht in Bottom geändert. Was fehlt mir hier?

und wie man es benutzt

toastr.optionsOverride = 'positionclass: toast-bottom-full-width';

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
<head>
    <title></title>
    <script type ="text/javascript" src ="@Url.Content("~/Scripts/jquery-1.6.4.js")"></script>
    <script type ="text/javascript" src ="@Url.Content("~/Scripts/toastr.js")"></script>
    <link rel="stylesheet" type="text/css" href="~/content/toastr.css" />
</head>
<script type="text/javascript">
    $(document).ready(function () {

        // show when page load
        toastr.info('Page Loaded!');

        $('#linkButton').click(function () {
            toastr.optionsOverride = 'positionclass:toast-bottom-full-width';
            // show when the button is clicked
            toastr.success('Click Button', 'ButtonClick', 'positionclass:toast-bottom-full-width');
        });

    });

</script>

<body>
    <div id ="linkButton" > click here</div>
</body>

Update 1

Nach dem Debuggen habe ich festgestellt, dass die Methode getOptions von toastr.js .__ überschreibt. 'positionclass: toast-bottom-full-width' bis 'toast-top-right'

    function getOptions() {
        return $.extend({}, defaults, toastr.options);
    }

Update 2 Zeile 140 in toastr.js ist nicht erfolgreich Erweiterung von m optionsOverride in Optionen. ??

        if (typeof (map.optionsOverride) !== 'undefined') {
            options = $.extend(options, map.optionsOverride);
            iconClass = map.optionsOverride.iconClass || iconClass;
        }

update 3 Postion-Problem wurde behoben, aber ich muss die Positionsklasse 3-mal wie folgt erwähnen. Ich bin sicher, es gibt einen weniger lauten Weg, um dies zu erreichen.

$('#linkButton').click(function () {

    toastr.optionsOverride = 'positionclass = "toast-bottom-full-width"';
    toastr.options.positionClass = 'toast-bottom-full-width';
     //show when the button is clicked
    toastr.success('Click Button', 'ButtonClick', 'positionclass = "toast-bottom-full-width"');
});
23
swapneel

Sie können es einfach so einstellen, wie in der toastr-Demo gezeigt: http://codeseven.github.io/toastr/ Oder dieser Demo: http://plnkr.co/edit/ 6W9URNyyp2ItO4aUWzBB

toastr.options = {
  "debug": false,
  "positionClass": "toast-bottom-full-width",
  "onclick": null,
  "fadeIn": 300,
  "fadeOut": 1000,
  "timeOut": 5000,
  "extendedTimeOut": 1000
}
33
John Papa

Ja, es gibt definitiv einen Fehler hier ...

Zum Beispiel. Das Einstellen der Optionen ist etwas klebrig. Ich habe sie dynamisch eingestellt, bevor ich den gewünschten Toast-Typ anrufe. Beim ersten Mal spielen die Optionen keine Rolle. Der nächste Toast scheint die Optionen aufzugreifen, und der Toast danach ändert sich nicht.

Zum Beispiel

var logger = app.mainModule.factory('logger', ['$log', function ($log) {

var error = function (msg, data, showtoast) {

    if (showtoast) {
        toastr.options = {
            "closeButton": true,
            "debug": false,
            "positionClass": "toast-bottom-full-width",
            "onclick": null,
            "showDuration": "300",
            "hideDuration": "1000",
            "timeOut": "300000",
            "extendedTimeOut": "1000",
            "showEasing": "swing",
            "hideEasing": "linear",
            "showMethod": "fadeIn",
            "hideMethod": "fadeOut"
        };
        toastr.error(msg);
    }
    $log.error(msg, data);
};
var info = function (msg, data, showtoast) {

    if (showtoast) {
        toastr.options = {
            "closeButton": true,
            "debug": false,
            "positionClass": "toast-bottom-right",
            "onclick": null,
            "showDuration": "300",
            "hideDuration": "1000",
            "timeOut": "300000",
            "extendedTimeOut": "1000",
            "showEasing": "swing",
            "hideEasing": "linear",
            "showMethod": "fadeIn",
            "hideMethod": "fadeOut"
        };
        toastr.info(msg);
    }
    $log.info(msg, data);
};
var warning = function (msg, data, showtoast) {

    if (showtoast) {
        toastr.options = {
            "closeButton": false,
            "debug": false,
            "positionClass": "toast-bottom-right",
            "onclick": null,
            "showDuration": "300",
            "hideDuration": "1000",
            "timeOut": "5000",
            "extendedTimeOut": "1000",
            "showEasing": "swing",
            "hideEasing": "linear",
            "showMethod": "fadeIn",
            "hideMethod": "fadeOut"
        };
        toastr.warning(msg);
    }
    $log.warning(msg, data);
};

var success = function (msg, data, showtoast) {

    if (showtoast) {
        toastr.options = {
            "closeButton": false,
            "debug": false,
            "positionClass": "toast-bottom-right",
            "onclick": null,
            "showDuration": "300",
            "hideDuration": "1000",
            "timeOut": "5000",
            "extendedTimeOut": "1000",
            "showEasing": "swing",
            "hideEasing": "linear",
            "showMethod": "fadeIn",
            "hideMethod": "fadeOut"
        };

        toastr.success(msg);
    }
    $log.info(msg, data);
};


var logger = {
    success: success,
    error: error,
    info: info,
    warning: warning

};
return logger;
}]);
6
Doug Beard

Ich kann scheinbar keine Version 2.0.3 finden! Die neueste Version ist 1.4.1 siehe dies

Am Ende habe ich den hartcodierten Wert für positionClass in 'angle-toastr.tpls.js' geändert.

Jetzt zentriert es richtig!

0
Arnold.Krumins

es ist ein einfacher Schritt, um die Position zu ändern ...... siehe unten ..

geben Sie zuerst die Positionsklasse an, bevor Sie die Nachricht anzeigen.

EX: toastr.options.positionClass = 'toast-bottom-right';

Dann zeigen Sie Ihre Nachricht wie folgt:

Command:toastr "erfolg"

Hoffe es mit der Arbeit gut ... Danke

Ich habe es gerade in meinem Laravel-Projekt verwendet. Ich werde meinen Code hier einfügen, wenn Sie es verstehen.

<script src="{{ asset('js/toastr.min.js') }}" type="text/javascript"></script>
<script type="text/javascript">


    @if (Session::has('success'))

        toastr.options.positionClass = 'toast-bottom-right';
        toastr.success("{{ Session::get('success') }}");

    @endif


</script>

Toastr-Benachrichtigungen

0