Rails6用のRailsエンジンを開発しています。その Rails エンジンに Stimulus コントローラーを含めたいと思います。メインアプリはWebpackerを使用。これをメインアプリに自動的に含めるように、grid_controller.jsを私のレールエンジンに移動したいと思います。
app/javascript/packs/application.jsrequire("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
import { Application } from "stimulus"
import { definitionsFromContext } from "stimulus/webpack-helpers"
app/javascript/controllers/grid_controller.js
import { Controller } from "stimulus"
export default class extends Controller {
sort(event) {
var urlParams = new URLSearchParams(location.search);
var attr = event.target.dataset.attr
var dir = urlParams.get("dir") || 'asc'
var currentAttr = urlParams.get("sort")
var currentURL = window.location.origin+window.location.pathname
if (attr == currentAttr){
dir = ((dir == 'asc') ? 'desc' : 'asc')
}
var gotoURL = currentURL+'?'+'sort='+attr+'&'+'dir='+dir
window.location.href = gotoURL
}
}