我遇到了Mojolicious和藏匿的问题,我想我可能只是不理解它的工作方式? 我有一个包含2个组合框的页面,当第一个条目更改时,我希望更新第二个选项。
所以我添加了一个如下所示的事件处理程序,然后调用我的控制器子程序' devicecommandset'然后将DBIx查询的结果放入一个哈希数组中,我将其添加到我的存储中。
然后我只是呈现一些良性文本。我的子程序被调用,并且在' @commandsets'中有预期的内容。但是我无法在浏览器控制台上看到它(我在调试模式下运行)。
我是否需要实际修改要填充的存储的DOM?基本上我只是试图从我的请求中获取数据以填充组合框选项。
在我的模板中
$(document).ready(function() {
$('select:not([name*="command"])').live('change', function (e) {
$.get('devicecommandset', { device: $(this).attr("value") },
function (data) {
alert("Made it this far");
});
});
});
在我的控制器中
sub devicecommandset {
my $self = shift;
my $device = $self->param('device') || '';
my @commandsets = $self->db->resultset('CommandSet')->search_commandsets_by_devicename($device);
$self->stash(commandsets => \@commandsets );
print Dumper(@commandsets);
$self->render(text => 'success' );
}
答案 0 :(得分:3)
您基本上将转储器打印到日志,而不是浏览器。您的存储空间未在渲染中使用,因为您没有引用它。使用内联渲染类型和" dumper"帮手。 尝试:
$self->stash(commandsets => \@commandsets );
$self->render( inline => '<%= dumper $commandsets %>' );