我是RoR的新手。我有一个使用javascript的视图文件。一旦按下按钮,我想在Controller中调用一个方法。我该怎么做。
JS代码:(folder_view.js)
function iterate(data){
var folder_names = "";
$.each(data.Folder, function(key, val) {
folder_names = folder_names + "<ul> <li id= '" + val.folder_name + "'>
<a class='a' href='' onclick='updateDiv(val.folder_name)'>" + val.folder_name +
"</a></li></ul>";
});
var divid = "folder";
var view_var2 = jQuery("<div class='scrollbar ' id='divscroll' > <div class='content ' id = " + divid + "> <ul> <li> Folder " + folder_names + "</li></ul></div></div>");
$('#folder_view').html(view_var2);
tree_view(divid);
}
function tree_view(divid){
$("#" + divid).jstree();
$("#" + divid).on("changed.jstree", function (e, data) {
console.log(data.selected);
});
$('button').on('click', function () {
$("#" + divid).jstree(true).select_node('child_node_1');
$("#" + divid).jstree('select_node', 'child_node_1');
$.jstree.reference("#" + divid).select_node('child_node_1');
});
}
这里,我在克隆文件夹时调用UpdateDiv方法。此方法在视图文件中可用,如下所示:
Folder_view.html.erb:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js" ></script>
<script type="text/javascript" src="/assets/folder_view.js"></script>
<script type="text/javascript" src="/assets/jstree.min.js"></script>
<script>
$(document).ready(function() {
$.getJSON('/assets/temp.json', function(data) {
iterate(data);
});
});
function updateDiv(data){
//Call a function to controller
}
</script>
<body class="bonita-body" ieonload="">
<div id="bonita_process_label" class="bonita_process_label"><div class="gwt-HTML">Console</div></div>
<div id="bonita-banneralthaut"></div>
<div id="bonita-banneraltbas"></div>
<div style='margin-top: 40px;'> <div id='folder_view'></div>
</body>
单击folder_name时会调用updateDiv方法。我想从控制器中获取一些特定于文件夹的元数据。在克隆时如何调用从视图到控制器的任何方法?
任何参考?
答案 0 :(得分:0)
您需要使用本机XHR进行AJAX调用:
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
或者使用jQuery AJAX: