vue.js dynamic create nest modal
    
    
    
        {{txt}}
        
    
    
        
            
                deep: {{deep}}
            
            
                
                
            
            
         
    
    
    
        'use strict'
        function creat_new_modal(txt, deep) {
            var promise = new Promise(function (resolve, reject) {
                var MyModal = Vue.extend({});
                var modal = new MyModal({
                    ready: function () {
                        this.$watch('show', function (val) {
                            if (val === false) {
                                modal.$destroy(true)
                            }
                        })
                    },
                    data: {
                        show: true,
                        txt: txt,
                        deep: deep || 0,
                    },
                    template: '#template',
                    methods: {
                        showNew: function () {
                            var self = this
                            creat_new_modal(this.txt, this.deep + 1).then(function (value) {
                                self.txt = value
                            }, function (error) {
                                console.log(error)
                            })
                        },
                        submit: function () {
                            resolve(this.txt)
                            this.show = false
                        },
                        cancel: function () {
                            reject('cancel')
                            this.show = false
                        }
                    },
                    components: {
                        modal: VueStrap.modal
                    }
                })
                modal.$mount().$appendTo('body')
            })
            return promise
        }
        var vm = new Vue({
            el: '#demo',
            data: function () {
                return {
                    txt: null,
                }
            },
            methods: {
                show: function () {
                    var self = this
                    creat_new_modal(self.txt).then(function (value) {
                        self.txt = value
                    }, function (error) {
                        console.log(error)
                    })
                }
            }
        })
     
 2.0
    
    
    
        {{ txt }}
        
    
    
        
            
                
            
        
    
    
    
        'use strict'
        function creat_new_modal(txt, deep) {
            var promise = new Promise(function (resolve, reject) {
                var MyModal = Vue.extend({})
                var modal = new MyModal({
                    data: {
                        show: true,
                        txt: txt,
                        deep: deep || 0,
                    },
                    template: '#template',
                    methods: {
                        showNew: function () {
                            var self = this
                            creat_new_modal(this.txt, this.deep + 1).then(function (value) {
                                self.txt = value
                            }, function (error) {
                                console.log(error)
                            })
                        },
                        submit: function () {
                            resolve(this.txt)
                            this.show = false
                        },
                        cancel: function () {
                            reject('cancel')
                            this.show = false
                        }
                    },
                    watch: {
                        'show': function (val) {
                            if (val === false) {
                                this.$destroy()
                                document.getElementById('demo').removeChild(this.$el)
                            }
                        }
                    }
                })
                //  , 
                var component = modal.$mount()
                document.getElementById('demo').appendChild(component.$el)
            })
            return promise
        }
        var vm = new Vue({
            el: '#demo',
            data: function () {
                return {
                    txt: null,
                }
            },
            methods: {
                show: function () {
                    var self = this
                    creat_new_modal(self.txt).then(function (value) {
                        self.txt = value
                    }, function (error) {
                        console.log(error)
                    })
                }
            }
        })
     
 이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[백견불여일타/Vue.js] 4장 - 입력 폼 데이터 가져오기v-model 데이터 입력 select 지난 장에서는 v-bind를 이용해서 HTML 태그 속성 값을 Vue로 다루는 법을 배웠습니다. 이번에는 사용자가 입력한 데이터를 Vue로 가져오는 법에 대해 다룹니다. 웹 페...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.