我在OctoberCMS中使用了默认的AJAX框架,但现在我正在尝试使用一些更自定义的东西,通过创建一个地图来查询我的服务器以获得更多标记。为此,我需要定义一个端点,如
/markers
我知道我可以创建一个页面来执行此操作,但这似乎很麻烦,因为OctoberCMS中的默认值是使用格式的函数
onPan()
我目前的javascript功能是:
var markerStore = {};
function getMarkers() {
$.get('/markers', {}, function(res,resp) {
for(var i=0, len=res.length; i<len; i++) {
//Do we have this marker already?
if(markerStore.hasOwnProperty(res[i].id)) {
markerStore[res[i].id].setPosition(new google.maps.LatLng(res[i].position.lat,res[i].position.long));
} else {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(res[i].position.lat,res[i].position.long),
title:res[i].name,
map:map
});
markerStore[res[i].id] = marker;
}
}
window.setTimeout(getMarkers,INTERVAL);
}, "json");
}
有没有我可以调整它以使用OctoberCMS中的默认AJAX框架?如果没有,创建此页面的适当方法是什么?
答案 0 :(得分:0)
OctoberCMS有自己的AJAX库,为了使用它你需要在控制器中创建方法,如你所说onPan()
但你可以做的是在插件的根目录中创建一个 routes.php ,即如果插件名是博客,那么在blog文件夹中创建routes.php文件,并使用laravel的路径相同作为其他路线。
Route::get('markers',function(){
// Use database of any computation to return markers
});
现在您可以访问www.example.com/markers并将其用作使用jQuery AJAX方法的Native AJAX调用。
答案 1 :(得分:0)
您可以使用ajaxframeworks js api:(https://octobercms.com/docs/ajax/javascript-api#javascript-api)
$.request('componentName::onGetMarkers', {
success: function(data) {
console.log(data);
},
});