我有一个使用Ruby 2.5.3并使用Stimulus 1.1.1框架的Rails v5.2.4应用程序。我在Rails控制器中设置了一些cookie,并从Stimulus控制器访问它们,但是当我第一次加载页面时,我得到了:
ReferenceError: Cookies is not defined
at Controller.connect (summary_controller.js:92)
at Context.connect (context.js:23)
但是当我重新加载同一页面时,我得到了cookie值,并且一切正常。我没有使用任何宝石来处理Cookie。
具有相应行号的stimulusjs方法是:
91 connect(){
92 var tech_and_monitor = Cookies.get('tech_and_monitor');
93 var tech_only = Cookies.get('tech_only');
95 var manager_only = Cookies.get('manager_only');
96 }
在第一次加载时,当我在浏览器Cookies.get('tech_and_monitor');
上使用实时表达式时,我得到了cookie值。
我不明白为什么我在第一次加载时没有得到Cookies的引用,而在第二次加载时却得到它的原因?
答案 0 :(得分:0)
我发现负责在Rails应用程序中不加载JavaScript的是Turbolinks。因此,我在调用它的按钮中禁用了Turbolinks,并且也第一次加载了JavaScript。
<%= link_to "More Page", more_page_path, data:{turbolinks: false}, class: "nav-item nav-link"%>