【问题标题】:Dynamically set jeditable target URL动态设置可编辑的目标 URL
【发布时间】:2013-03-19 03:33:33
【问题描述】:

我有一系列可以用 jEditable 编辑的 div。集合中的每个项目都有一个唯一的 RESTful URL,我需要 PUT 来保存它。例如:

  • budgets/6/incomes/1
  • budgets/6/incomes/5
  • budgets/6/incomes/8
  • 等等……

我不确定如何将唯一的 URL 注入到 jEditable 的 settings.target 属性中,用于我的输出的每一行(在本例中为收入)。

JavaScript:

  $(document).ready(function() {
     $('.edit').editable("http://<needstobedynamic", {
        method    : 'PUT',
        indicator : "saving...",
        tooltip   : "Click to edit"
     });

Rails 视图 (html.erb):

<% @incomes.each do |income| %>
    <div class="row-fluid action_container">
        <div class="edit"><%= number_to_currency income.amount %></div>
    </div>
<% end %>

这里是 another post,它引用了这个问题,但没有接受答案。这篇文章中给出的答案允许我动态设置目标 URL,但不能解决在 HTML 声明中设置该 URL 而不是在 JavaScript 中设置的问题。

我也乐于接受并感谢其他图书馆的建议。

【问题讨论】:

    标签: javascript jquery ruby-on-rails jeditable


    【解决方案1】:

    OP,

    在提供的related SO question 中扩展答案。

    对于在标记中(以及在 JS 中)引用 RESTful url,将值存储在数据属性中是否适合您的需要?

    $('div.whatever').editable("", {
        onsubmit: function (settings) {
          settings.target = "//foo.bar" || $(this).attr('data-editable-url');
        }
    });
    
    <div class="whatever" data-editable-url="budgets/6/incomes/1">
    ...
    </div>
    

    这是立即浮现在脑海中的路线。

    希望对你有帮助。

    【讨论】:

    • 我认为这正是我所寻找的。会尽力回复您。
    • 好的,这样可以将 RESTful URL 获取到 javascript 调用中,但是,Rails CSRF 令牌现在没有与表单一起传递,并且每次将 jEditable 表单提交到服务器时,我的会话超时(使用设计进行身份验证)并出现错误:警告:无法验证 CSRF 令牌真实性。
    • 嗯。你能发布你的标记和你的javascript的sn-p吗?
    猜你喜欢
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多