小编Sep*_*ano的帖子

Rails 4:将变量传递给javascript

我已经尝试了很多方法并且遵循了Ryan Bates的指南,但无论我做什么,我仍然未定义.

application.html.erb

<body>
 <%= content_tag :div, id: 'trackers', data: {trackers: User.count} do %>
 <% end %>
</body
Run Code Online (Sandbox Code Playgroud)

application.js.erb

var datadump = ($('#trackers').data('trackers'))
console.log(datadump)
//returns undefined in console
Run Code Online (Sandbox Code Playgroud)

查看页面源我可以看到变量

<div data-trackers="2" id="trackers">
Run Code Online (Sandbox Code Playgroud)

我现在正在传递User.count只是为了保持简单,但我需要传递@trackers_count,它在应用程序控制器的before_action中实例化.一旦我在这里找出问题,我应该能够解决这个问题.有什么建议?

更新 - 我已将所有变量简化为仅跟踪器,而不是trackers_count,以防止语法和更新代码中的任何错误反映出来.

答案更新 - 我选择了正确的答案,因为如果你想传递任何变量ASIDE FROM CURRENT_USER那些方法是完美的.但是,您无法使用JS中的current_user访问任何内容,因为它在窗口之前加载,因此无法知道current_user是谁.这是一个真正的痛苦,但我只是做了很长的路,并通过传递json和ajax请求访问我需要的信息.

javascript variables ruby-on-rails ruby-on-rails-4

8
推荐指数
1
解决办法
2万
查看次数

从孙子类调用超类构造函数,调用父或祖父项构造函数?

当使用来自二级子类的超类构造函数时,它是否将参数传递给祖父项构造函数或直接父构造函数?

//top class
public First(type first){
  varFirst = first;
}

//child of First
public Second(type second){
  super(second); //calls First(second)
}

//child of Second
public Third(type third){
  super(third); //calls First(third) or Second(third)?
}
Run Code Online (Sandbox Code Playgroud)

java inheritance constructor super constructor-overloading

3
推荐指数
1
解决办法
1300
查看次数