【问题标题】:Using sweetalert 2 with custom html and AngularJS使用带有自定义 html 和 AngularJS 的 sweetalert 2
【发布时间】:2018-04-27 11:19:23
【问题描述】:

我将SweetAlert2 与 AngularJS 一起使用,将此端口用于 AngularJS 1.x:https://github.com/socialbase/angular-sweetalert-2

我正在尝试在我的 swal 中添加一些自定义 html,所以当我这样做时:

angular.module('app').controller('TestController', function($scope, SweetAlert) {
  $scope.test = "My test";

    SweetAlert.swal({
      type: 'warning',
      html: '<input type="text" ng-model="test">'
    }).then(function() {
    });
  });

它正确绑定了 html,但没有使用我的变量 test 绑定 ng-model。显然,它将 swal 模态代码放在我的 ng-controller 之外的我的 html 代码中。

如何使我的变量 test 与 AngularJS 和 SweetAlert 一起使用?

【问题讨论】:

  • 你确定那个库完全支持这个功能吗?
  • 我查看了github.com/socialbase/angular-sweetalert-2 代码,它只是 SweetAlert2 到 AngularJS 1.x 的一个端口,所以我认为这个库可以在其中使用 AngularJS,但可能是这样不支持。

标签: angularjs sweetalert2


【解决方案1】:

查看这个库的代码:

https://github.com/socialbase/angular-sweetalert-2/blob/master/lib/angular-sweetalert2.js

正如您所见,与角度相关的“移植”很少,它只是普通 JS 库的包装器。

因此,根本不可能将特定于角度的代码作为 html 放入并期望它能够工作。

但是,查看此lib's code examples,您可以在对话框关闭后读取 html 输入的值。

angular.module('app').controller('TestController', function($scope, SweetAlert) {
  $scope.test = "My test";

  SweetAlert.swal({
    type: 'warning',
    html: '<input id="swal-input" type="text" ng-model="test">',
    preConfirm: function() {
      return document.getElementById('swal-input').value;
    }
  })
  .then(function(value) {
    $scope.test = value;
  });
});

【讨论】:

  • 这只是一个例子,我需要在swal里面放一个图片轮播。
  • @William 和我已经解释了为什么这不起作用以及您关于使用 ng-model 的问题的可能解决方法 - 如果您的问题实际上不同,我建议您创建一个新的问题来解决确切的问题(例如,使用绑定到给定控制器的自定义角度模板创建对话框)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-07
  • 1970-01-01
  • 2014-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多