Tôi đang cố thực hiện cuộc gọi Ajax đến máy chủ của mình sau khi nhấp chuột href. Khi tôi nhấp vào href, tôi đã thành công đi đến máy chủ của tôi và gọi một tuyến đường xác định. Tuyến đường của tôi phục vụ chính xác và gửi lại cho tôi dữ liệu. Dưới đây là kịch bản thực hiện điều đó.dựng lại tệp EJS sau khi yêu cầu ajax
$('.graph-switch').click(function(){
event.preventDefault();
$.getScript("js/ejs_production.js", function()
$.ajax({
url:'/spiderSwitch',
type: 'GET',
data: { type: $(this).attr('href') },
success: function(result){
console.log(result); // correctly displayed
// WHAT TO DO AT THIS POINT??
},
error: function(){
alert("well this is not working");
}
});
});
});
Tại thời điểm này tôi cần phải hiển thị lại phần mà tôi muốn thay đổi. Dưới đây là một phần của HTML mà tôi muốn thay đổi.
<div class="panel-body text-center"><% include partials/spider-chart.ejs %> </div>
Về cơ bản tôi thêm tệp biểu đồ spider.ejs bằng từ khóa bao gồm của ejs. Dưới đây là tệp spider-chart.ejs.
<!-- views/partials/spider-chart.ejs -->
<!--NOTE: host pages must include the following in <head>-->
<!--<script src='http://code.jquery.com/jquery-1.6.1.js'></script>-->
<!--<script src="scripts/SpiderChartControl.js"></script>-->
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/highcharts-more.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
<div id="chart" style="min-width: 300px; max-width: 1000px; height: 300px; margin: 0 auto"></div>
<script>
var spiderGraphData = <%- JSON.stringify(spiderGraphData) %>
var options = {
metric: 'accuracy'
}
console.log(JSON.stringify(spiderGraphData));
SpiderChartControl.draw("chart", spiderGraphData, options);
</script>
Về cơ bản đó là tập lệnh điền div bằng thư viện biểu đồ cao. Theo như tôi hiểu, có hai cách tiếp cận mà cả hai tôi đều không thể làm việc.
một cái gì đó như thế này:
$("#id").innerHtml = "<div class='panel-body text-center'> <% include partials/spider-graph.ejs %> </div>";
hoặc một cái gì đó như thế này sử dụng EJS xây dựng:
new EJS({url : 'partials/spider-chart.ejs' }).update('.tab-pane active', result);
tôi không có hy vọng cao cho câu hỏi này nhưng không có câu trả lời cho vấn đề này đặc biệt trong bất kỳ tài nguyên web nào.
trong đó một phần được bạn gặp rắc rối? Tôi thấy bạn có một lỗi nhỏ, đó là event.preventDefault(), sự kiện không được xác định, bạn nên xác định nó trong trình xử lý hàm như fuction (event) {event.preventDefault() .... – Balder
Tôi gặp sự cố trong việc thiếu tài liệu làm việc này với cấu trúc EJS mới. Đó là lý do tại sao cuối cùng tôi đã làm cho nó hoạt động bằng cách thay đổi html bên trong. – ralzaul