在 haml 脚本中调用 javascript 函数
Calling javascript function within haml script
我是 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;
}
}
您混合了服务器端和客户端执行。您正在尝试从 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
然后考虑完全重构所有设计不当的代码,并将那些 requester
和 my_expert
加载到控制器中的实例 Ruby 变量中,重新实现故障安全逻辑检查这些变量是否存在。
我是 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;
}
}
您混合了服务器端和客户端执行。您正在尝试从 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
然后考虑完全重构所有设计不当的代码,并将那些 requester
和 my_expert
加载到控制器中的实例 Ruby 变量中,重新实现故障安全逻辑检查这些变量是否存在。