在JS中访问对象属性

时间:2018-11-01 10:46:29

标签: javascript vue.js axios

我目前正在写博客,有点卡住了,我需要一些帮助!

用户创建文章时,可以设置特殊标签,以通过属性“位置”将文章推到网站顶部。因此article.position可以等于“第一”,“第二”,“第三”或“无”(这是默认位置),具体取决于用户设置的内容。

这是使用axios创建文章的方法:

addArticle() {

  axios.post('http://localhost:4000/articles', {
     title: this.title,
     description: this.description,
     content: this.content,
     position: this.position,
    })

     .then(function (response) {
       console.log(response);
     })
     .catch(function (error) {
       console.log(error);
      });
   },

一切正常,但这是问题所在:

当用户创建具有特殊位置的文章时,如果文章已经设置为相同位置,我希望将其替换为用户刚刚设置的新文章。

例如: 旧的文章A具有position == "first"。用户正在创建新的商品B,并且他希望商品B位于顶部,他设置了position == "first"。文章现在应将职位设置为“无”。

重要说明:文章位于Vuex商店中。

这是我在axios请求上方的addArticle方法中尝试过的内容:

if (article.position == "first") {

  let articlesList = this.$store.state.articles

  for (var i = 0; articlesList.length; i++) {
    if(articlesList[i].position == "first")
      articlesList[i].position == "none"
  }
}

我是菜鸟,所以可能有很多错误,我在做什么错?

谢谢您的时间!

1 个答案:

答案 0 :(得分:0)

  if (article.position === 'first') {

    let articlesList = this.$store.state.articles;

    for (i = 0; i < articlesList.length; i++) {
      if(articlesList[i].position === 'first')
        articlesList[i].position = "none"
    }
  }

我只是在不进行最佳实践和介绍的情况下进行最小的更改。