vue.js - 使用父子组件中的 js 辅助函数
问题描述
我有一个父组件(比如CustomerOrder
)和一个子组件(比如OrderLine
)。在CustomerOrder.vue
中,我将OrderLine
通过遍历数组来包含多个。我有一个需要在CustomerOrder
和中使用的辅助 js 函数OrderLine
。我可以导入这个js文件CustomerOrder
并调用js函数。但是我无法导入 js 文件,因为在调用函数时OrderLine
它会给出错误( )。vue.runtime.esm.js?2b0e:1888 TypeError: _vm.formatNumber is not a function
我的要求是使用父级和多个相同类型的子级的辅助 js 函数。
客户订单.vue:
<template>
<span class="caption">{{ formatNumber(1500) }} LKR</span>
<v-layout wrap>
<order-line v-for="line in orderLines" :key="line.id" :general_data="line"></order-line>
</v-layout>
</template>
<script>
import { formatNumber } from '../utils'
</script>
OrderLine.vue:
<template>
<span class="caption">{{ formatNumber(2300) }} LKR</span>
</template>
<script>
import { formatNumber } from '../utils'
</script>
vue.runtime.esm.js?2b0e:1888 TypeError: _vm.formatNumber is not a function
formatNumber
在调用 OrderLine时引发。是不是因为
供参考:
实用程序.js:
import Numbro from 'numbro'
export function formatNumber (value, numberOfDecimals) {
return Numbro(value).format({
thousandSeparated: true,
trimMantissa: true,
mantissa: numberOfDecimals
})
}
解决方案
你应该添加(定义formatNumber
)methods
喜欢
methods: {
formatNumber
}
否则你不能在模板中使用它
您也可以检查https://vuejs.org/v2/guide/filters.html并添加formatNumber
到filters
而不是methods
. 然后在模板中使用
{{ 2300 | formatNumber }}
推荐阅读
- linux - 如何每天轮换日志,仅使用当天的数据?
- javascript - 循环遍历 json 数据并匹配到一个数组
- c# - 停止加载功能在 Visual Studio 中不可用
- php - 使用组合框选择值时无法识别变量
- python - 爬取 0 页(以 0 页/分钟),抓取 0 项
- android - TalkBack 应为标题
- .htaccess - .htaccess 重定向到子文件夹中忽略的小写字母
- dart - Flutter - 如何控制 ListView 构建器的速度?
- django - 如何在 LAN 上设置我的 Django 服务器
- javascript - iframe onload 在 Safari 浏览器中不起作用