【发布时间】:2021-02-28 00:54:54
【问题描述】:
我正在尝试使用 Vue 使引导模式动态化...
组件 HTML:
<div id="commentList">
<comment-list
v-for="comment in comments"
:key="comment.id"
:content="comment.content"
></comment-list>
</div>
JS
<script>
const app = Vue.createApp({
data() {
return {
comments: []
};
},
created () {
this.fetchComments();
},
methods: {
fetchComments: function () {
$.ajax({
url: '/activity/head/52',
method: 'GET',
success: function (data) {
this.comments = data;
}
});
}
}
});
app.component('comment-list', {
props: ['content'],
delimiters: ['{:', ':}'],
template:
`
<div class="row my-4">
<div class="col-1"><img src="/photo-alex.jpg" class="rounded-circle" style="width:38px; height: 38px"></div>
<div class="col-11 p-3 text-muted rounded bg-white border">
{:content:}
</div>
</div>
`
});
app.mount('#commentList');
</script>
AJAX 请求没有被执行,所以这是我遇到的第一个问题,想法?
AJAX 响应:
[
{
id: 76,
ago: "in 4 hours",
user: "Alex",
content: "THIS IS A COMMENT"
}
]
【问题讨论】:
-
我已经更改了一些代码并修复了一些在 console.log() 中显示的问题,现在正在调用 AJAX,但在 console.log 中没有错误,也没有显示结果?? ?想法?
-
您能否创建一个minimal reproducible example 来重现该问题。我建议使用codesanbox.io 或类似的。你所拥有的应该可以工作。尽管这可能与在 Vue 3 中使用 Vue 2 语法有关。尚未精通 3。只是为了确保,请尝试使用最新的 vue 2 而不是您正在使用的任何版本。
-
对不起,我最初从错误的窗口粘贴...我有一些简单的错误是由于从另一个窗口复制粘贴引起的,我也在本地运行并且没有注意到。以上没有错误,但也不起作用。
-
没关系,我发现了这个问题。
fetchData中的this不是 Vue 实例。我会发布一个答案。
标签: vue.js vue-component vuejs3