Как использовать сладкое оповещение с Ember.js и Rails

Я новичок в Ember, и у меня возникли проблемы с получением приятного оповещения для работы с приложением 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').destroyRecord().then', и я почти уверен, что это потому, что я вызываю 'this.get' внутри функции, которая находится внутри действия контроллера. Однако я не знаю, как это исправить... Как мне сослаться на контроллер внутри функции? Любые предложения о том, как исправить это или лучший способ добиться той же функциональности?


person Ryan    schedule 26.10.2014    source источник


Ответы (2)


Я не знаю насчет кофескрипта, но, может быть, вы можете попробовать назначить контроллер переменной?

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")
)
person Asgaroth    schedule 27.10.2014
comment
Я не думаю, что вы можете объявлять переменные в контроллере Ember, хотя... Я просто попробовал, чтобы убедиться, и получил ошибку. - person Ryan; 27.10.2014
comment
что ты имеешь в виду? вы можете просто `var controller = this;' или что-то подобное в кофескрипте. - person Asgaroth; 27.10.2014
comment
Хорошо, я понял это! Спасибо за совет. Я понял, что мне нужно создать переменную контроллера в действии удаления, а не в общем контроллере. - person Ryan; 28.10.2014

использовать поведение: в данных как:

<%= 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;            
        } 
    }); 
});
person Jai Kumar Rajput    schedule 26.10.2015
comment
Я получил это после 2-часового исследования и поиска в Google: P - person Jai Kumar Rajput; 09.08.2016