如果Vue中的语句单击以更改要运行的功能?

时间:2017-04-29 16:58:32

标签: javascript vue.js

如何在v-bind,v-on或@ click中使用if语句来处理运行哪个函数?

我现在所拥有的只有这样的作品(if语句是简写的javascript):

        <li v-for="entry in entries.entries"><button type="button" @click="entry.entries?openSub($event):'entry.action'">{{entry.title}}</button>

所以基本上,如果按钮列表项中有子条目,按钮应该触发将子菜单 - 活动类添加到列表项的功能,如果按钮所在的列表项没有任何子条目,应该运行已分配给按钮的任何功能。

我说它有点有用,因为它确实正确地运行了openSub($ event)部分,但它既没有运行也没有添加在没有条目的情况下应该运行的函数。

1 个答案:

答案 0 :(得分:6)

问题是你没有执行某项功能。

&#13;
&#13;
new Vue({
  el: '#app',
  data: {
  	bool: true
  },
  methods: {
  	one() {
    	console.log('one');
      this.bool = !this.bool;
    },
    two() {
    	console.log('two');
      this.bool = !this.bool;
    }
  }
})
&#13;
<script src="https://unpkg.com/vue/dist/vue.js"></script>

<div id="app">
  <button @click="bool ? one() : two()">Click</button>
</div>
&#13;
&#13;
&#13;

因此,代码中应该有entries.action()

<li v-for="entry in entries.entries"><button type="button" @click="entry.entries ? openSub($event) : entry.action()">{{entry.title}}</button>