Twitter bootstrap 将按钮置于vue元素外部

Twitter bootstrap 将按钮置于vue元素外部,twitter-bootstrap,vue.js,Twitter Bootstrap,Vue.js,我正在使用vuestrap回购协议,现在正在尝试在div滑入的地方实现“搁置” 当我将带有指令的按钮和aside元素放在一个包含以下元素的元素中时,我就可以实现所有功能: <div id="leftMenu"> <button class="btn btn-success btn-lg" v-on="click:showLeft=true">OPEN MENU</button> <aside show="@{{@showLeft}}"

我正在使用vuestrap回购协议,现在正在尝试在div滑入的地方实现“搁置”

当我将带有指令的按钮和aside元素放在一个包含以下元素的元素中时,我就可以实现所有功能:

<div id="leftMenu">
    <button class="btn btn-success btn-lg" v-on="click:showLeft=true">OPEN MENU</button>

    <aside show="@{{@showLeft}}" placement="left" header="Title" width="350">
        CONTENT HERE
    </aside>
</div>

<script>
var aside = VueStrap.aside;
new Vue({
    el: '#leftMenu',
    components: {
        'aside': aside
    },
    data: {
        showLeft: false
    }
});
</script>

使用子组件无法实现所需的功能。因为它希望它是DOM元素的子元素

相反,我建议您创建两个Vue实例,并让它们共享一个通用的全局数据变量,当用户单击菜单按钮时,该变量将被修改

<div id="nav">
    <button class="btn btn-success btn-lg" v-on="click:showLeft">OPEN MENU</button>
</div>
<div id="leftMenu">
    <aside show="@{{@showLeft}}" placement="left" header="Title" width="350">
        CONTENT HERE
    </aside>
</div>

<script>
var showLeftGlobal = false;

new Vue({
    el: '#leftMenu',
    data: {
        showLeft: showLeftGlobal
    }
});

new Vue({
    el: '#nav',
    data: {
        showLeft: showLeftGlobal
    },
    methods: {
        showLeft: function() {
            // Toggle show
            showLeftGlobal = showLeftGlobal ? false : true;
        }
    }
});
</script>

打开菜单
满足于此
var showletglobal=false;
新Vue({
el:“#左菜单”,
数据:{
showLeft:showLeftGlobal
}
});
新Vue({
el:'导航',
数据:{
showLeft:showLeftGlobal
},
方法:{
showleet:function(){
//切换显示
showleeftglobal=showleeftglobal?false:true;
}
}
});
<div id="nav">
    <button class="btn btn-success btn-lg" v-on="click:showLeft">OPEN MENU</button>
</div>
<div id="leftMenu">
    <aside show="@{{@showLeft}}" placement="left" header="Title" width="350">
        CONTENT HERE
    </aside>
</div>

<script>
var showLeftGlobal = false;

new Vue({
    el: '#leftMenu',
    data: {
        showLeft: showLeftGlobal
    }
});

new Vue({
    el: '#nav',
    data: {
        showLeft: showLeftGlobal
    },
    methods: {
        showLeft: function() {
            // Toggle show
            showLeftGlobal = showLeftGlobal ? false : true;
        }
    }
});
</script>