gpt4 book ai didi

javascript - Slim中是否可以调用外部js文件中的路由

转载 作者:行者123 更新时间:2023-12-03 03:33:24 25 4
gpt4 key购买 nike

在我的 twig 文件中,我像这样调用 ajax 的路由

var fund = $('#fund');

//this will call php to populate fund drop-down
$.ajax({
url: "{{ path_for('myfundrequest') }}",
type: 'get',
dataType: 'json'
}).done(function (response) {
var len = response.length;

fund.empty();

for (var i = 0; i < len; i++) {
var fundNum = response[i][0];
var fundName = response[i][1];

fund.append("<option value='" + fundNum + "'>" + fundNum + ' -- ' + fundName + "</option>");
}
fund.prepend("<option value=''>- Select A Fund -</option>").val('');
}).fail(function (jqXHR, textStatus, error) {
console.log("getFund: " + error);
});
});

这是我的路线

$app->get('/fundrequest', 'PoEntryController:funds')->setName('myfundrequest');

我的问题是,如果我在公共(public)文件夹中创建外部 js 文件是否可以在外部文件中实现 url: "{{ path_for('myfundrequest') }}

最佳答案

不,这在纯 JavaScript 文件上是不可能的,但是

我可以想到两个选择:

  1. 将 JavaScript 文件添加为 twig 文件,然后在路线上使用 twig 渲染它。

    $app->get('/data/myScripts.js', 'ScriptProvider:myScript');

    class ScriptProvider {
    public function myScript($req, $res) {
    return $this->view->render($res, 'data/myScript.js.twig');
    }
    }
  2. 将 URL 添加为全局变量(可能在全局对象上)

    index.twig

    <!-- [..] -->
    <script>
    Url = {
    myfundrequest: "{{ path_for('myfundrequest') }}"
    };
    </script>

    然后使用 Url.myfundrequest 作为 JavaScript 中的 url

    $.ajax({
    url: Url.myfundrequest,
    ..

第二个选项的性能会更高,因为 twig 引擎不需要运行。

关于javascript - Slim中是否可以调用外部js文件中的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45983350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com