如何将PHP行添加到Handlebars上下文数组中?
问题描述:
我正在使用handlebars和一个handlebars注册助手循环通过一个数组,我放在我的上下文中并显示为ul。其中一个li项目需要有一些php。我无法弄清楚将php放入li中的方法。如何将PHP行添加到Handlebars上下文数组中?
这是我现在有:
var context = {
social: [
{ url: "[redacted]"},
{ url: "[redacted]"},
{ url: "[redacted]"},
{ url: "<?php echo get_favorite_toggle('{{post_id}}'); ?>"}
]
}
答
你不能弄清楚,因为你不完全了解PHP和把手的工作。默认情况下,您的<?php ?>
标签只能在PHP扩展名的文件中使用。我的猜测是你的把手模板有.handlebars
扩展名。
所以,一种天真的方法是将此模板重命名为.php
。但是这可能会打破其他整合。
正确的方法是要求使用AJAX的PHP文件,并根据响应进行渲染。
创建一个新的文件,favorite.php
,例如,把下面的代码:
<?php
// Your imports here
$post_id = $_GET['post_id'];
echo get_favorite_toggle($post_id);
?>
现在您的JS文件可能是这样的:
var context = {
social: [
{ url: "[redacted]"},
{ url: "[redacted]"},
{ url: "[redacted]"}
]
};
jqueryNoConflict.ajax({
url: "/favorites.php?post_id="+post_id,
success: function (data) {
context.push({ url: data});
}
});