typescript - 使用 TypeScript 在 Vue 3 中创建全局过滤器
问题描述
我在 Udemy 上学习这门课程,但它的内容已经过时,所以我不能按照作者创建全局过滤器所遵循的相同步骤。
此外,从 Vue 3 文档看来,不再支持过滤器。
我在这里尝试做的事情相当简单,它只需要将价格作为数字并将其作为字符串美元价格返回,例如: take100
和 return $100
。
这对我不起作用。我的main.ts
样子是这样的:
import { createApp } from "vue";
import { Vue } from 'vue-class-component';
import { viewDepthKey } from "vue-router";
import App from "./App.vue";
import router from "./router";
import store from "./store";
Vue.filter('price', function(input: number){
if(isNaN(input)){
return "-";
}
return '$' + input.toFixed(2);
})
createApp(App)
.use(store)
.use(router)
.mount("#app1");
这是错误:
src/main.ts:8:5
TS2339: Property 'filter' does not exist on type 'VueConstructor<Vue<unknown, {}, {}>>'.
6 | import store from "./store";
7 |
> 8 | Vue.filter('price', function(input: number){
| ^^^^^^
9 | if(isNaN(input)){
10 | return "-";
11 | }
这就是我尝试在模板中使用它的方式:
{{ item.product.price | price }}
有没有办法让它工作或者我应该使用一些computed property
?
编辑后续问题:
我的课看起来像这样:
<script lang="ts">
import { Options, Vue } from "vue-class-component";
import { IProductInventory } from "@/types/Product";
import format from "@/helpers/format";
@Options({
name: "Inventory",
components: {}
})
export default class Inventory extends Vue{
inventory:IProductInventory[] = //Coming from an api call
}
</script>
谢谢!
解决方案
在./helpers/filters.ts
const filters = {
price(input: number) {
if (isNaN(input)) {
return "-";
}
return '$' + input.toFixed(2);
}
}
export default filters;
在您创建应用程序的地方全局安装它...
import filters from './helpers/filters'
const app = createApp(App);
app.config.globalProperties.$filters = filters
app.mount('#app')
然后就做
{{ $filters.price( price ) }}
推荐阅读
- google-api - [google-drive-sdk]:我可以将整个文件夹上传到 goolge 驱动器吗?
- csv - 当 Jmeter 的响应数据是 XML 格式时,在输出的 CSV 文件中我们生成的格式是不可读的。如何克服它
- javascript - “lazy-initialize” In ChartJS
- php - 我想在下面给出的代码中在 php 和 html 中使用越来越少的变量如何减少变量的数量
- php - 尝试使用 PHP 从 json google API 中提取数据
- javascript - 滚动到底部解决方案并不总是到达页面的绝对末尾
- java - Netty - 通过 PooledByteBufAllocator 分配可重用缓冲区列表
- ios - 列出 ios 的各种图层动画键
- out-of-memory - 如何在 jboss eap 生产服务器中监控 Java 堆内存使用情况
- java - 从数据库获取 URL 后的 URL 访问安全性及其在 java 文件中的角色