如何在Ember.js和Rails中使用sweet alert

How to use sweet alert with Ember.js and Rails

本文关键字:sweet alert Rails Ember js      更新时间:2023-09-26

我是一个Ember noob,在使用Ember/rails应用程序时遇到了一些困难。我相信我有一个范围问题,我不太确定如何处理。。

在我的控制器里,我有一个删除操作,里面有以下代码:

swal({
  title: "Are you sure?"
  text: "You will not be able to recover this post!"
  type: "warning"
  showCancelButton: true
  confirmButtonColor: "#DD6B55"
  confirmButtonText: "Yes, delete it!"
  closeOnConfirm: false
}, ->
  @get('model').destroyRecord().then =>
    @transitionToRoute 'posts'
  swal("Deleted!", "Your post has been deleted.", "success")
)

我将错误追溯到"@get('model').dedestroyRecord().then",我很确定这是因为我在控制器操作内部的函数中调用了"this.get"。然而,我不知道如何解决。。。如何在函数中引用控制器?关于如何纠正这一点或以更好的方式实现相同功能,有什么建议吗?

我不知道coffescapet,但也许你可以尝试将控制器分配给一个变量?

controller = this; // or @ ? 
swal({
  title: "Are you sure?"
  text: "You will not be able to recover this post!"
  type: "warning"
  showCancelButton: true
  confirmButtonColor: "#DD6B55"
  confirmButtonText: "Yes, delete it!"
  closeOnConfirm: false
}, ->
  controller.get('model').destroyRecord().then =>
    controller.transitionToRoute 'posts'
  swal("Deleted!", "Your post has been deleted.", "success")
)

在数据中使用行为:作为:

<%= link_to "Delete", s, :method => :delete, data: { behavior: 'delete' } %>

$("[data-behavior='delete']").on("click", function(e){
    e.preventDefault();
    swal({
        title: "Are you sure you want to delete " , 
        text: "You will not be able to recover this data!", 
        type: "warning", 
        showCancelButton: true, 
        confirmButtonColor: "#DD6B55", 
        confirmButtonText: "Yes, delete it!", 
        closeOnConfirm: false 
    }, function(isConfirm) { 
        if (isConfirm)  
        { 
           // here you can use ajax to delete 
           swal("Deleted!", "Ok , rooms will be delete after submit.", "success"); 
        } 
        else  
        { 
           return false;            
        } 
    }); 
});