我在查看文件中有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
如何在脚本中获得正常路线?
答案 0 :(得分:1)
您可以在视图中生成URL并将其附加到您的元素之一(如正文):
<body data-my-url="<?= Url::to(..) ?>">
然后像这样从您的JavaScript文件中读取它:
var url = $('body').data('my-url');