我有一个简单的 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/

10-12 12:50