SilverStripe Ajax请求使用renderWith渲染部分视图不起作用

时间:2019-06-02 02:01:18

标签: ajax silverstripe silverstripe-4

我正在开发SilverStripe项目。在我的项目中,我试图向控制器发出Ajax请求并呈现部分视图。我正在关注本教程https://www.silverstripe.org/learn/lessons/v4/ajax-behaviour-and-viewabledata-1。但这是行不通的。请在下面查看我的代码。

这是我在控制器中的索引功能

public function index(HTTPRequest $request)
{
    if ($request->isAjax()) {
        return $this->renderWith('Authors');
    }

    return [
        'Blogs' => $this->getBlogs(),
    ];
}

您可以在代码中看到,我正在尝试在Includes文件夹中呈现Authors部分视图。

我使用以下代码在模板文件夹的“包含”文件夹中创建了部分视图。

<h1>This is the previous events partial view.</h1>

这就是我在Jquery中进行ajax调用的方式

$.get(url)
            .then(function (response) {
                //render the view here

            })
            .catch(function (error) {
                console.log(error);
            })

但是ajax调用抛出错误。这是错误。

[User Warning] None of the following templates could be found: my-themes/templates/Authors in themes "Array ( [0] => my-themes [1] => $default ) "
GET /blogs?page=2
Line 210 in /var/www/public/vendor/silverstripe/framework/src/View/SSViewer.php

Source
201             $message .= print_r($templates, true);
202 
203             $themes = self::get_themes();
204             if (!$themes) {
205                 $message .= ' (no theme in use)';
206             } else {
207                 $message .= ' in themes "' . print_r($themes, true) . '"';
208             }
209 
210             user_error($message, E_USER_WARNING);
211         }
212     }
213 
214     /**
215      * Triggered early in the request when someone requests a flush.
216      */

问题是什么,我该如何解决?

0 个答案:

没有答案