【问题标题】:Calling javascript function within haml script在haml脚本中调用javascript函数
【发布时间】:2016-11-10 08:16:10
【问题描述】:

我对 javascript、html 和 haml 非常陌生,所以对于你们中的一些人来说,答案是显而易见的,希望是显而易见的......

请原谅我对这些语言的理解不佳。

我试图在 if 语句中调用一个 javascript 函数(整个脚本是用 haml 编写的)。一旦它评估为 1,也就是 true,它将在 do 循环中执行代码。这是代码:

.container
  %section#admin-order-list
    %table.table
      %thead
        %tr
           %th Client Name
           -# %th Client Email
           %th Client Phone
          %th Expert Name
          -# %th Expert Email
          %th Expert Phone
          -# %th Duration
          %th Date Requested
          %th Conference Number
      %tbody
        - @orders.each do |order|
          -if (check_valid(order.requester_id, order.user_id) == 1) 
            - requester = User.find(order.requester_id)
            - my_expert = User.find(order.user_id)
            %tr
              %td
                = requester.first_name
                = requester.last_name
              -# %td= requester.email
              %td
                = requester.phone_number
              %td
                = my_expert.first_name
                = my_expert.first_name
                = my_expert.last_name
              -# %td= order.user.email
              %td
                = my_expert.phone_number
              -# %td= order.duration
              %td
                = format_date(order.created_at)
              %td
                = order.conference_number

:javascript
  function check_valid(the_requester, the_expert){
    if (typeof the_requester !== 'undefined' && typeof the_expert !== 'undefined') {
      return 1;
    }
    else {
      return 0;
    }
  }

【问题讨论】:

标签: javascript html haml


【解决方案1】:

您正在混合服务器端和客户端执行。您正在尝试从 Rails(服务器端)调用您的 javascript check_valid 函数(客户端)。这是行不通的。

就像一个学习练习一样,在 Rails 助手中重新实现您的业务逻辑,您可以完全按照自己的方式编写代码,并摆脱那些 javascript。

# app/helpers/application_helper.rb
module ApplicationHelper
  def check_valid(one_id, other_id)
    one_id && other_id
  end
end

然后考虑完全重构所有设计不当的代码,并将这些 requestermy_expert 加载到控制器中的实例 Ruby 变量中,重新实现故障安全逻辑检查这些变量的存在。

【讨论】:

  • 谢谢!我对这一切都很陌生,所以这个技巧对于学习如何拼凑起来非常有帮助......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多