我正在尝试制作一个小型 web 应用程序来控制我使用的命令行音乐播放器(mocp),但是当用户按下页面上的按钮时,我无法点击路由。我预计问题与我缺乏 HTML 有关。
代码:
#!/usr/bin/perl
use Mocp;
use Mojolicious::Lite;
my $mocp = Mocp->new;
for my $action ( qw( play pause stop next previous unpause toggle-pause server ) ) {
get $action => sub {
my $self = shift;
$mocp->$action;
$self->render( 'controls' );
};
}
get '/' => sub { shift->render( 'controls' ) };
app->start;
__DATA__
@@ controls.html.ep
%= input_tag 'play', type => 'button', value => 'Play'
%= input_tag 'pause', type => 'button', value => 'Pause'
%= input_tag 'volup', type => 'button', value => 'Volume Up'
%= input_tag 'voldown', type => 'button', value => 'Volume Down'
%= input_tag 'toggle', type => 'button', value => 'Toggle'
%= input_tag 'next', type => 'button', value => '>>'
%= input_tag 'previous', type => 'button', value => '<<'
如果我直接导航到路线(例如“/play”),一切都会按预期进行。目标是简单地单击“播放”按钮来执行相关的方法,而不必手动输入路线。我在这个阶段的问题是:
- 将这些方法映射到路由是解决此问题的最佳方法吗?
- 如果是这样,我如何像在 JavaScript 中一样触发带有“onclick”按钮事件的路由?
非常感谢任何建议。