两个this.$model.confirm嵌套报错cannot read properties of undefined(reading 'confirm')
时间: 2023-07-25 09:11:35 浏览: 143
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
这个错误通常是因为`this.$model`未定义导致的,可能是因为你没有正确引入或初始化`$model`。
请确保你已经在Vue实例中正确引入`$model`,例如:
```javascript
import { MessageBox } from 'element-ui'
export default {
mounted() {
this.$model = MessageBox
},
// ...
}
```
另外,请注意,在Vue组件的方法中,`this`的指向可能会发生变化,导致无法访问`$model`。你可以使用箭头函数或使用`bind`方法来绑定正确的`this`上下文,例如:
```javascript
// 在methods中使用箭头函数
export default {
methods: {
nestedConfirm: function(message) {
return new Promise((resolve, reject) => {
this.$model.confirm(message, () => {
this.$model.confirm('确认执行此操作吗?', () => {
resolve(true)
}, () => {
reject(false)
})
}, () => {
reject(false)
})
})
}
}
}
// 在其他方法中使用bind方法
export default {
methods: {
someMethod: function() {
doSomethingWithModel.bind(this.$model)()
}
}
}
function doSomethingWithModel() {
this.confirm('Are you sure?', () => {
console.log('Confirmed')
}, () => {
console.log('Canceled')
})
}
```
希望这些信息可以帮助你解决问题。
阅读全文