首页 > 解决方案 > 页面上的数据与控制台中的数据不同

问题描述

我正在执行 GET 请求以在页面上显示信息 --- 在我的控制台中,我可以看到日期_data.Created是正确的,但在页面本身上它显示的是今天 12 月 2 日的日期。我moment.js用来格式化创建日期。

我最近所做的更改是删除了<p>曾经位于标签之间的<a>标签,但我看不出这会如何与日期混淆。另外,我不记得过去看到过这个错误,但我可能错过了它。

关于发生了什么以及如何解决它的任何想法?将不胜感激。

JS:

async function displayAnnouncements() {
    axios.get(`${_something}/_api/lists/GetByTitle('someName')/Items?$select=ID,Title,Body,Created,Link&$orderby=Created%20desc&$top=4`, restHeaders)
         .then(resp => {

            let _data = resp.data.d.results;
            let _newDate = moment(_data.Created).utc().format("MMMM D, YYYY");

            console.log(_data)

                _data.slice(0, 4).forEach(m => {
                    const itemLink = $(`<a href="#close" data-toggle="modal" data-target="#bkEvts-${m.ID}" class="cont_evts-link" title="View Announcement">
                        <b>${m.Title}</b> - <i>${_newDate}</i>
                    </a><br>`)

// etc

这是控制台和页面:

在此处输入图像描述

标签: javascriptjquerygetaxiosmomentjs

解决方案


_data是一个数组。_data.Created将导致undefined. 所以你正在传递到哪undefined一个moment会回到今天。

而是格式化数组中每个项目的日期。

async function displayAnnouncements() {
    const resp = await axios.get(`${_something}/_api/lists/GetByTitle('someName')/Items?$select=ID,Title,Body,Created,Link&$orderby=Created%20desc&$top=4`, restHeaders)
    let _data = resp.data.d.results;
    _data.slice(0, 4).forEach(m => {
        let _newDate = moment(m.Created).utc().format("MMMM D, YYYY");
        const itemLink = $(
            `<a href="#close" data-toggle="modal" data-target="#bkEvts-${m.ID}" class="cont_evts-link" title="View Announcement">
                <b>${m.Title}</b> - <i>${_newDate}</i>
            </a><br>`
        );
    });
};

推荐阅读