Я написал эту функцию, которая удаляет шаблоны. При регистрации в потоке управления все кажется нормальным, но что-то не так с функцией, вызывающей axios, и поэтому Promise не выполняется. Почему это так.
Прежде всего, это функция, которая вызывает axios:
function remove (id) {
console.log("template#remove - id: " + id)
return axios.delete(API.template(id))
}
Идентификатор печати 34
как ожидалось, а не "34"
Эта функция вызывается здесь:
deleteTemplate (templateId) {
let vc = this
let confirmation = prompt('Por favor escriba el nombre de la plantilla si desea borrarla')
console.log("vc.template.name: " + vc.template.name)
if (confirmation === vc.template.name) {
console.log("Template.remove(templateId): " + templateId)
Template.remove(templateId)
.then( () => {
console.log('template-detail#deleteTemplate success')
alert('Plantilla eliminada')
vc.$router.push({name: 'templates'})
})
.catch( (error) => {
console.log('template-detail#deleteTemplate error', error)
console.dir(error)
if (error.response.data.errors != undefined) {
alert("Hubo un error eliminando la plantilla"+"\n"+error.response.data.error+"\n"+error.response.data.errors)
} else {
alert("Hubo un error eliminando la plantilla"+"\n"+error.response.data.error)
}
})
}
else {
alert('El nombre no coincide')
}
},
и идентификатор также печатается как число, а не как строка.
Я немного исследовал ошибку Cannot convert undefined or null to object
и пришел к выводу, что должен оценивать строгое равенство по двум вещам, которые не являются строго равными. Но я не могу найти такую эквивалентность.
EDIT:
Это API.template (id):
template: function (id) {
console.log('endpoints#template - this.templates + id:' + this.templates + id)
return this.templates + id
},