首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在vue指令中使用全局函数

在vue指令中使用全局函数
EN

Stack Overflow用户
提问于 2016-04-05 11:03:55
回答 2查看 3K关注 0票数 3

我试图在vue指令中使用存档方法(_.isEmpty),如下所示:

代码语言:javascript
复制
<div class="post" v-for="post in posts"></div>
    ...
    <div class="comments" v-if="! _.isEmpty(post.comments)">
      <div class="comment" v-for="comment in post.comments"></div>
    </div>
    ...
</div>

但是得到以下错误:

未定义的TypeError:无法读取未定义的属性“isEmpty”

vue似乎在当前范围内寻找_.isEmpty方法。在这种情况下,我应该如何调用全局函数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-05 11:30:28

只能访问模板中当前Vue实例/组件的函数:

  • 数据
  • 道具
  • 方法

不能运行“第三方”代码。

因此,您必须在Vue组件中创建一个方法,以代理提交方法:

代码语言:javascript
复制
methods: {
  isEmpty: function (arr) { return _.isEmpty(arr)}
}

并在模板中使用此方法:

代码语言:javascript
复制
<div class="comments" v-if="! isEmpty(post.comments)">
票数 4
EN

Stack Overflow用户

发布于 2016-04-05 14:50:07

为什么不将_添加到Vue组件中:

代码语言:javascript
复制
data(){
  return {
    _:require('lodash')  //or however you include it. maybe just window._
  }
}

然后就可以进入了。如果_是一个有效的对象键,则不肯定,因此,如果需要,只需将其称为lolodash即可。

另外,假设注释是一个数组,那么使用v-if='post.comments.length'就没有问题了。如果你已经知道它是一个数组的话,Lo-破折号是很棒的,但是没有必要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36424611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档