我有一个简单的 View ,但Purchase
belongs to :client
。因此,要访问purchases
,我需要提供client_id
。 :
$(document).ready(function() {
var purchases = new Vue({
el: '#purchases',
data: {
purchases: []
},
ready: function() {
var that;
that = this;
$.ajax({
url: 'clients/' + CLIENT_ID + '/purchases.json', // problem
success: function(res) {
console.log(res)
that.purchases = res;
}
});
}
});
});
如何在ajax请求中访问
client_id
?我尝试了<%= @client.id %>
,但它得到nil:NilClass`的错误undefined method
id'。如何传递该变量?
最佳答案
问题的答案是您不能直接在js函数中访问实例变量。这是因为js是一种客户端语言,仅在您的浏览器中运行,而ruby / rails是一种服务器端语言。
您可以在js中访问变量的唯一方法是将其作为html数据传递。例如,作为您相应的html.erb文件中的隐藏字段。
<%= hidden_field_tag('client_id', @client_id) %>
并以
client_id: $('#client_id').val()
在js文件中。
关于javascript - Rails + Vue:访问实例变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43144179/