从js脚本添加操作链接

时间:2019-01-10 18:28:04

标签: javascript yii2

我在查看文件中有js代码:

function getAuthorData(id) {
    $.get("/web/review/authordata",
        {id: id},
        function (data, status) {
            $(".modal-content #fio").text(data.fio);
            $(".modal-content #email").text("Email: " + data.email);
            $(".modal-content #phone").text("Телефон:" + data.phone);
            $(".modal-content #link").attr("href",
                "<?= Url::toRoute(['/review/getreviewsbyautor']);?>" + "?id=" + id);
        });
}

但是如何从script.js文件中链接到yii2动作?

我的尝试

$this->registerJsFile('@web/js/userData.js');

userData.js:

function getAuthorData(id) {
    var id2 = id;
    $.get("/web/review/authordata",
        {id: id},
        function (data, status) {
            $(".modal-content #fio").text(data.fio);
            $(".modal-content #phone").text("Телефон:" + data.phone);
            $(".modal-content #link").text("Телефон:" + data.phone);
            $(".modal-content #link").text("href",
                "<?= Url::toRoute(['/review/getreviewsbyautor']);?>" +  id2);
         //   $(".modal-content #link").attr("href", );
        });
}

但是链接看起来像这样:

  

/ web / site /%3C?=%20Url :: toRoute([%27review / getreviewsbyautor%27]);?%3E?id = 8

如何在脚本中获得正常路线?

1 个答案:

答案 0 :(得分:1)

您可以在视图中生成URL并将其附加到您的元素之一(如正文):

<body data-my-url="<?= Url::to(..) ?>">

然后像这样从您的JavaScript文件中读取它:

var url = $('body').data('my-url');