Vue 自定義指令

<div>
<div class="card" v-pin:aaa.top.right="card1.pinned">
     <button @click="card1.pinned = !card1.pinned">定住\取消</button>
        監(jiān)控到開發(fā)貸款的vajfkdjg
</div>
<div class="card" v-pin="card2.pinned">
      <a href="#" @click="card2.pinned = !card2.pinned"> pin it </a>
        監(jiān)控到開發(fā)貸款的vajfkdjg
</div>
 監(jiān)控到開發(fā)貸款的
等很多字......
</div>
<script type="text/javascript" src="https://cdn.jsdelivr.net/vue/2.1.3/vue.js"></script>
<script type="text/javascript">
//v-XXX 都是默認的指令 
//自定義組件,屬性,也可以自定義指令
//自定義指令的修飾符和傳參

Vue.directive("pin",function(el,binding){
    console.log(0,el)//指向的是有pin屬性的div
    console.log(1,binding)//指向的是div的屬性,默認的
    var pinned = binding.value;
    var position = binding.modifiers;
    var warning = binding.arg;
    if(pinned){
        el.style.position = "fixed";
        for(var key in position){
            if(position[key]){
                el.style[key] = "10px"
            }
        }

        if(warning==="true"){
            el.style.background = "red"
        }
        if(abc==="aaa"){
            el.style.border = "2px solid cyan"
        }
    }else{
        el.style.position = "static"
    }
})
//初始化父組件
    var parent = new Vue({
        el:"#app",
        data :{
            card1 : {
                pinned:false
            },
            card2 : {
                pinned:false
            },
            price:10,
        }
    })
</script>

打印的binding的結果


binding的結果
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容