Отключить пустую ссылку на основе логического значения - PullRequest
0 голосов
/ 22 марта 2019

Я не могу найти хороший способ отключить nuxt-ссылку, основанную на переменной данных.Кто-нибудь может что-то предложить?Я пытался посмотреть на детализацию, но ничего не могу придумать.

Скажем, у меня есть логическое значение с именем disable Я хочу сделать что-то вроде этого

<nuxt-link :disabled="disable"></nuxt-link>

Я просто не хочу, чтобы ссылка была кликабельной, если для логического параметра установлено значение false

Ответы [ 2 ]

1 голос
/ 22 марта 2019

<nuxt-link> по существу <router-link> из Vue Router .

Вы можете отключить его, используя event prop .

Предполагая, что одно из ваших свойств data или computed равно disabled логическое:

<nuxt-link :event="disabled ? '' : 'click'"></nuxt-link>

Рабочий пример:

const Foo = { template: '<div>foo</div>' }
const Bar = { template: '<div>bar</div>' }

const routes = [
  { path: '/foo', component: Foo },
  { path: '/bar', component: Bar }
]

const router = new VueRouter({
  routes
})

const app = new Vue({
  router,
  data(){
    return { disabled: true }
  }
}).$mount('#app')
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

<div id="app">
  <h1>Hello App!</h1>
  <p>
    <!-- Assume they are <nuxt-link> because they are the same -->
    <router-link
      :event="disabled ? '' : 'click'"
      to="/foo"
    >
      Go to Foo
    </router-link>
    <router-link to="/bar">Go to Bar</router-link>
  </p>
  <router-view></router-view>
</div>
0 голосов
/ 25 марта 2019

Я обнаружил, что самым простым способом было просто создать класс для отключенных ссылок. Я до сих пор не уверен, что это лучший способ сделать это, но он работает для меня и делает именно то, что я хочу.

<nuxt-link to="/search" :class="!disabled ? 'disabled' : ''"> Search </nuxt-link>

мой css

.disabled {
  color: lightgrey
  pointer-events: none
}
...