【问题标题】:Change style programmatically ionic toast以编程方式更改风格离子吐司
【发布时间】:2016-12-05 18:06:40
【问题描述】:

我的弹出窗口中有以下 ionicToast:

onTap: function(e) {
                    var nombre = scope.data.nombre;
                    var telefono = scope.data.telefono;
                    if (nombre.length > 0 && telefono.toString().length > 0) {
                        scope.data.nombre = nombre;
                        scope.data.telefono = telefono;
                        return scope.data;
                    } else {
                        ionicToast.show('Debe completar todos los campos.', 'bottom', true, 2500);
                        e.preventDefault();
                    }
                }

吐司很完美。但我想区分 toast 是错误消息还是成功消息。

问题是:¿如何以编程方式更改 toast 的样式? 因为有时我需要背景红色(用于错误消息),有时我需要绿色(用于成功消息)。

我的 .HTML 文件中也没有这个 toast,所以我不能设置特定的样式

这是我定义的风格:

.toast-container-error{
    background-color: red;
}

.toast-container-success{
    background-color: green;
}

谢谢你帮助我!

//编辑// 将 toastr 用于我的自定义 toast,它没有在 Android 设备上显示

index.html

<link href="bower_components/toastr/toastr.css" rel="stylesheet">
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js" ></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/js/toastr.min.js"></script>
<link href="//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.min.css" rel="stylesheet" />

Agenda.service(我想在哪里使用它)

agendaService.$inject = ['remoteDataService','$q', '$ionicPopup', '$rootScope', 'ionicDatePicker'];

/* @ngInject */
function agendaService(remoteDataService,$q, $ionicPopup, $rootScope, ionicDatePicker){ 
    var agendaComplejo = [];
    var service = {
        obtenerAgenda: obtenerAgenda,
        cargarNuevoTurno: cargarNuevoTurno,
        abrirAgenda: abrirAgenda
    };
    toastr.options = {
          "closeButton": true,
          "debug": true,
          "newestOnTop": false,
          "progressBar": false,
          "positionClass": "toast-bottom-full-width",
          "preventDuplicates": false,
          "onclick": null,
          "showDuration": "300",
          "hideDuration": "1000",
          "timeOut": "5000",
          "extendedTimeOut": "1000",
          "showEasing": "swing",
          "hideEasing": "linear",
          "showMethod": "fadeIn",
          "hideMethod": "fadeOut"
    }
    return service;

function cargarNuevoTurnoPopup() {
        var scope = $rootScope.$new();
        scope.data = {
            nombre: '',
            telefono: ''
        };
        return {
            templateUrl: 'scripts/complejo/agenda/nuevo-turno.html',
            title: "Nuevo Turno",
            scope: scope,
            buttons: [{
                text: 'Cancelar',
                onTap: function(e) {
                    scope.data.canceled = true;
                    return scope.data;
                }
            }, {
                text: '<b>Guardar</b>',
                type: 'button-positive',
                onTap: function(e) {
                    var nombre = scope.data.nombre;
                    var telefono = scope.data.telefono;
                    if (nombre.length > 0 && telefono.toString().length > 0) {
                        scope.data.nombre = nombre;
                        scope.data.telefono = telefono;
                        return scope.data;
                    } else {
                        toastr["error"]("Debe completar todos los campos.")
                        e.preventDefault();
                    }
                }
            }]
        };
    }

另外,我使用以下命令生成 apk:

ionic build android --debug

【问题讨论】:

    标签: javascript css ionic-framework sass


    【解决方案1】:

    这是可能的,但你必须覆盖组件的原生样式才能做到这一点。在我们的项目中,我们使用 Toastr,它为您提供了显示错误或信息的标准方法,并且可以更轻松地覆盖。

    要将它包含在您的项目中,只需包含 js 和 css

    <script src="toastr.js"></script>
    <link href="toastr.css" rel="stylesheet"/>
    

    然后 api 允许您提出信息或错误

    toastr.info('yourmessage')
    toastr.error('your message')
    toastr.success('your message')
    

    您可以在这里找到一个演示: http://codeseven.github.io/toastr/demo.html

    【讨论】:

    • 我安装了 toastr。使用 grunt serve --lab 可以完美运行,但是当我制作调试 apk 时,我的 android 无法使用 toastr。你有什么主意吗?谢谢
    • ok,toast 没有出现?你如何安装你的 toastr 模块?你如何生成apk?
    • 请看我的编辑帖。这就是我安装 toastr 模块的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 2019-11-24
    相关资源
    最近更新 更多