【问题标题】:Binding to a method which takes a string literal parameter绑定到采用字符串文字参数的方法
【发布时间】:2019-01-10 02:29:28
【问题描述】:

在下面的代码中,VUE 将“foo”解释为一个函数......因此我得到一个错误 foo is not a function,但实际上我只需要将字符串值“foo”传递给我的方法。

请问正确的语法是什么?

  <BlokMenu
       :menu="MenuBuilder.filterMenuItems('foo')"
  />

Screen shot of code from my view component

以及 MenuBuilder.js 中的 MenuBuild

MenuBuilder.js

【问题讨论】:

  • 应该是:menu="MenuBuilder.filterMenuItems('foo')"(去掉this
  • 这就是我展示示例代码的方式 - MenuBuilder 在另一个模块中。如果我使用你回复的语法,它和我的一样,我得到错误 foo is not a function。
  • 这是另一个给出相同错误的示例用法: - 这个说 - 摘要不是函数
  • 能分享一下过滤逻辑吗?
  • 您能否也完整地分享错误消息?最好在浏览器控制台中截屏

标签: vue.js vuejs2


【解决方案1】:

bind 对象需要属于 Vue 组件本身。如果是外部模块,您可以将其绑定到datacomputed 属性

// Vue components

import MenuBuilder from 'MenuBuilder.js'

export default {
  data: function() {
    return {
      MenuBuilder: MenuBuilder
    }
  }
}

然后

<BlokMenu :menu="MenuBuilder.filterMenuItems('foo')"/>

【讨论】:

  • 是的,我的代码本质上是这样的——但我使用了注入...所以 MenuBuilder 是从根对象传入的
  • 感谢您的贡献-确实您是正确的,我在调用中的语法是正确的-我的错误出现在我的过滤器代码中:)
猜你喜欢
  • 2012-06-25
  • 1970-01-01
  • 2017-10-22
  • 1970-01-01
  • 1970-01-01
  • 2019-06-21
  • 1970-01-01
  • 2021-03-04
  • 1970-01-01
相关资源
最近更新 更多