【问题标题】:Proper Way to Generate An AJAX Endpoint in OctoberCMS在 OctoberCMS 中生成 AJAX 端点的正确方法
【发布时间】:2015-11-03 20:50:32
【问题描述】:

我在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 框架?如果不是,那么创建此页面的适当方法是什么?

【问题讨论】:

    标签: javascript jquery ajax octobercms


    【解决方案1】:

    OctoberCMS 有自己的 AJAX 库,要使用它,您需要在控制器中创建方法,如您所说 onPan()

    但是你可以做的是在插件的根目录下创建一个routes.php,即如果插件名称是blog,那么在blog文件夹中创建routes.php文件,和使用laravel的路由相同和其他路线一样。

    Route::get('markers',function(){
        // Use database of any computation to return markers 
    
    });
    

    现在您可以访问 www.example.com/markers 并将其用作使用 jQuery AJAX 方法的 Native AJAX 调用。

    【讨论】:

      【解决方案2】:

      可以使用ajaxframeworks js api:(https://octobercms.com/docs/ajax/javascript-api#javascript-api)

      $.request('componentName::onGetMarkers', {
          success: function(data) {
              console.log(data);
          },
      });
      

      【讨论】:

        猜你喜欢
        • 2020-11-05
        • 2021-05-30
        • 2021-11-18
        • 2012-01-09
        • 2013-04-14
        • 2017-08-13
        • 1970-01-01
        • 1970-01-01
        • 2016-01-01
        相关资源
        最近更新 更多