代码之家  ›  专栏  ›  技术社区  ›  Mike Ross B.Kocis

具有动态内容的vuejs中的Open-modal-from方法

  •  0
  • Mike Ross B.Kocis  · 技术社区  · 6 年前

    我正在VueJs中构建一个组件,如果条件为真,需要打开modal,并从控制器获取数据并在modal中显示。

    axios

    这是我的ModalComponent.vue

    <template>
    <div class="modal fade show" id="myModal" style="display: block;">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h4 class="modal-title"><slot name="modal-header"></slot></h4>
                    <button type="button" class="close" @click="$emit('close')" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true" >×</span>
                    </button>
                </div>
                <div class="modal-body">
                    <slot name="modal-text"></slot>
                </div>
                <div class="modal-footer">
                    <slot name="modal-footer"></slot>
                    <button type="button" class="btn btn-danger" @click="$emit('close')" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>
    </template>
    
    <script>
        export default {
            name: "ModalComponent"
        }
    </script>
    

    在其他组件示例component中,我可以使用这样的按钮显示模态

    <button @click="showModal = true">Show Modal</button>
    <modal-component v-if="showModal" @close="showModal = false">
        <template slot="modal-header"> Testing something </template>
        <template slot="modal-text"> Modal Body will go here </template>
        <template slot="modal-footer"><button class="btn btn-primary">Save Changes</button></template>
    </modal-component>
    

    但我想打开这个模式自动如果一些条件是真的,从控制器和显示器获取数据。

    我在ExampleComponent中有一个方法,从控制器接收数据,但是如何将数据设置为 modal-text

    谢谢你

    1 回复  |  直到 6 年前
        1
  •  4
  •   subhasis    6 年前

    添加

    <template slot="modal-text"> {{ modalText }} </template>
    

    相反

    <template slot="modal-header"> Testing something </template>
    

    data () {
        return {
            showModal: false,
            modalText: ''
        }
    },
    methods: {
        showModalFn: function (showModalData) {
            // your code
            // ...
            this.showModal = true
            this.modalText = 'Whatever you want to show'
        }
    }
    
        2
  •  0
  •   Yordan Georgiev    5 年前

    在下面演示的创建方法中编写数据获取代码(下面的示例) codepen

    function getServerData (url, urlParams ){
      if ( typeof url_params == "undefined" ) { urlParams = getUrlParams()  }
      return axios.get(url , { params: urlParams } )
      .then(response => {
         return response ;
      })
      .catch(function(error) {
         console.error ( error )
         return error.response;
      })
    }