在我的 Controller 中,我有:
def view_chart
@legend = "First Data Set"
@labels = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
@data_set = [100, 300, 200, 500, 250, 175, 500, 100, 300, 200, 500, 250]
end
在我看来,我有:
javascript:
var lineData = {
labels: #{raw @labels.to_json},
datasets: [{
label: #{raw @legend},
backgroundColor: 'rgba(114,102,186,0.2)',
borderColor: 'rgba(114,102,186,1)',
pointBorderColor: '#fff',
data: #{raw @data_set.to_json}
}
这不起作用,因为在渲染 View 时我看不到图表。但是,如果我更改行:
label: #{raw @legend},
至:
label: "First Data Set",
View (和图表)正确呈现。如何将文本字符串传递到 .slim 模板内的 javascript 脚本?
最佳答案
您必须引用 erb 的输出:
javascript:
var lineData = {
labels: #{raw @labels.to_json},
datasets: [{
label: '#{raw @legend}',
backgroundColor: 'rgba(114,102,186,0.2)',
borderColor: 'rgba(114,102,186,1)',
pointBorderColor: '#fff',
data: #{raw @data_set.to_json}
}
您还可以在 ruby 中构建整个哈希并将其转换为 JSON:
var lineData = <%=
{
labels: @labels,
datasets: [{
label: @labels,
backgroundColor: 'rgba(114,102,186,0.2)',
borderColor: 'rgba(114,102,186,1)',
pointBorderColor: '#fff',
data: @data_set
}]
}.to_json
%>
关于javascript - 在 Rails 中将字符串传递给 slim 模板内的 javascript 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61597585/