是否可以在条件上设置指令?

我有一个“粘性”指令,可以使元素在屏幕上保持粘性。
我在使用社交分享组件时

<tempalte>
    <div class="social-share" v-sticky>
        ....
    </div>
</template>

但是,现在我需要一个条件。我很想在 Prop 上做这个。
<social-share :is-sticky="true">

有没有简单的方法来添加指令?

我试图用v-bind /绑定(bind)它:
<div class="social-share" :v-sticky="isSticky">

但这最终将在标签中呈现“v-sticky”。

最佳答案

当没有值传递给指令时,您可以考虑默认为true。

bind(el, binding) {
    if ((! binding.hasOwnProperty('value')) || binding.value) {
        // The user wants the directive to be applied...
    }
}

在您的模板中:
<template>
    <social-share v-sticky> <!-- Will apply the directive -->
    <social-share v-sticky="true"> <!-- Will apply the directive -->
    <social-share v-sticky="false"> <!-- Will NOT apply the directive -->
</template>

关于vue.js - 在条件上添加vue指令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37526888/

10-12 06:48