0

有没有办法从 Rails RJS 视图访问 Stimulus JS 控制器操作?

例如:

//app/views/posts/create.js.erb`
$('#tags').hide();

我可以

//app/javascripts/controllers/my_stimuous_controller
import { Controller } from 'stimulus'
export default class extends Controller {

  hideElementAction(event) {
    //....
  }
}


//app/views/posts/create.js.erb`
myStimulousController.callAction('hideElementAction');

对于那些不知道 RJS 是什么的人:Ruby on Rails 中的“ruby-to-js”模板系统

4

1 回答 1

0

不,相反,将动作添加到元素,然后触发它。这是一个用作事件的示例hide,但您可以将其命名为任何您喜欢的名称。

<div id="tags" 
     data-controller="my-stimulus-controller" 
     data-action="hide->my-stimulus-controller#hideElementAction">
</div>


Rails.fire(document.querySelector("#tags"), 'hide')
于 2021-03-06T13:00:58.493 回答