1

Rails6用のRailsエンジンを開発しています。その Rails エンジンに Stimulus コントローラーを含めたいと思います。メインアプリはWebpackerを使用。これをメインアプリに自動的に含めるように、grid_controller.jsを私のレールエンジンに移動したいと思います。

app/javascript/packs/application.js
require("@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

}
}

私のエンジンの構造

4

0 に答える 0