首页 > 解决方案 > Stimulus Rails 与 Ajax 调用有关的问题

问题描述

我的 Rails 应用程序中有两个刺激控制器。一个成功地实现了一个ajax调用,如下所示:

import Rails from 'rails-ujs'
Rails.start()

import { Controller } from "stimulus";
import Sortable from "sortablejs"

export default class extends Controller {
  connect() {
    this.sortable = Sortable.create(this.element, {
        animation: 150,
        filter: 'input, button,',
        onEnd: this.end.bind(this)
    })
  }  
  end(event) {
    //lots of code here that I removed
  
    Rails.ajax({
      url: this.data.get("url").replace(":id", id),
      type:'PATCH',
      data: data      
    })
  }  
}

这很好用。我为差异功能添加了另一个控制器,但我有点卡住了。我无法导入 rails-ujs - 我收到错误,它已经被导入。

但是,如果导入语句不在新控制器中,我会从我的 ajax 调用中收到错误“Rails is undefined”。

这是第二个控制器:

 import { Controller } from "stimulus"
 export default class extends Controller {

   static targets = [ "entryId", "output" ]  

   reorder(event) {

     const id = event.target.id;
     const entry_id = id.substr(15,5);
     var new_order = $('#image_order_array_' + entry_id).val();

     let data = new FormData();
     data.append("new_order", new_order);

     Rails.ajax({
       url: '/reorder_entry',
       type:'PATCH',
       data: data 
     });
    }
 };

我所需要的就是让 AJAX 调用正常工作!!!所有帮助表示赞赏。

标签: ruby-on-railsstimulusjs

解决方案


推荐阅读