如何使用Axios PATCH为对象内的元素分配新值?

时间:2019-07-04 11:58:14

标签: javascript api vue.js post axios

我正在使用Axios.patch更改API中的数据。 API的外观如下:

"email": "string",
"phoneNumber": "string",
"mobileNumber": "string",
"temporaryAddress": {
  "address1": "string",
  "address2": "string",
  "address3": "string",
  "address4": "string",
}

对我来说,用平均值来完成它很简单,但是当我想将一个新值应用于其中一个地址时,它将不起作用,并且不确定语法的外观,我尝试了一些事情已经发生,但不会更新,最合乎逻辑的解决方案是“ adress.adress1:this.myAddress”,编译器不接受。当元素在对象内部时,我如何修补/编辑新值?我想更改address1,address2等的值。

我已经尝试过这样输入,但没有成功。 “地址:this.myAddress”,“地址:this.myAddress.address1”(不给出错误,只是不更新​​任何内容)“地址1:this.myAddress”(不给出错误,但不更新任何内容)

updateCustomer() {

  this.$axios.$patch('http://localhost:8381/customer/v3/PRIVATE/' + this.customerData.id + '/?auditUser=Updatus', {
      lastName: this.lName,
      phoneNumber: this.phoneNr,
      email: this.eMail,
      mobileNumber: this.mobileNr,
      firstName: this.fName,
      address.adress1: this.myAddress
    }, {
      headers: {
        'Authorization': 'Basic YXBpdXNlcjpwYXNzd29yZA==',
        'Content-Type': 'application/json',
      },
    })
    .then(response => {
      alert("Information successfully changed!")
      this.updateCheck = false;
    })

  error => {
    alert("Type in the information correctly!");
    console.log("update error test");
    return false;
  }
}

我希望address1值是我输入的值,但是到目前为止,它没有更新或抛出400错误。

我这样尝试:“地址:{地址1:“ blabla 2”,地址2:“ blablabla 3”,地址3:“测试人员4”,地址4:“ mehmeh 5”}”,它进行了编译,但它给了我错误消息400“错误请求”。不知道我需要做些什么。

1 个答案:

答案 0 :(得分:0)

现在正在工作!

这是您访问“地址”对象内的数据的方式。

- task: Bash@3
  inputs:
    targetType: 'inline'
    script: 'if [ -d "node_modules" ]; then
            echo "##vso[task.setVariable variable=FOLDEREXISTS]true"
      fi'

- task: Npm@1
  inputs:
    command: 'install'
    condition: eq(variables.FOLDEREXISTS, 'true')

它现在让我使用PATCH更新数据。