Angular 为*ngFor使用带有三元运算符的自定义管道
我正在使用带有三元运算符的自定义管道来表示*ngFor,因此会出现错误。不知道如何解决。请帮忙 html: app.module.ts:Angular 为*ngFor使用带有三元运算符的自定义管道,angular,Angular,我正在使用带有三元运算符的自定义管道来表示*ngFor,因此会出现错误。不知道如何解决。请帮忙 html: app.module.ts: import { NgModule } from '@angular/core'; import { TruncatePipe } from './truncate.pipe'; @NgModule({ imports: [ ], declarations: [ TruncatePipe ], expor
import { NgModule } from '@angular/core';
import { TruncatePipe } from './truncate.pipe';
@NgModule({
imports: [
],
declarations: [
TruncatePipe
],
exports: [
]
})
export class AppModule { }
错误:
找不到类型为“字符串”的不同支持对象“10…”。NgFor只支持绑定到数组“”之类的可重用文件。在html文件中
您正在将字符串传递给不接受的NGF。确保通过阵列。i、 当您将整个数组传递到管道时,ex应该是数组。 如果长度高于或低于限制,则返回数组不变。 否则,它将返回数组长度,后跟trail 您很可能有一个数组y=['str-1','str-2','str-3'…] 你的电话号码是limitTo:y.limit?y、 长度:10 如果y没有限制字段,或者如果它为0,则默认为10 在您的问题中,调用管道时使用参数value=y和limit=10 小径是“…” 如果数组y的长度低于本例中的限制10,则为false 它最终将返回不变的数组 否则它将返回limit+trail,该值等于10+“…”。 这是一根绳子 字符串不可编辑,因此您将收到一个错误。谢谢大家 解决方案有效:
<div *ngFor="let x of (y.limit ? (y | slice: 0 : y.length) : (y | slice: 0 : 10))">
参考此链接,@Dixit Savaliya pipe不适用于*ngFor.add圆括号,请考虑最后一个:是管道的一个新参数,让x of y | limito:y.limit?y、 长度:10*ngFor不适用于字符串。您应该在*NGE中使用数组。G请提供一个,最好是stackblitz,y是什么?如果是这样,那么删除我的自定义管道,*ngFor应该不起作用。我不确定想要的结果是什么。如果你愿意解释的话,我会尽力帮你的。
import { NgModule } from '@angular/core';
import { TruncatePipe } from './truncate.pipe';
@NgModule({
imports: [
],
declarations: [
TruncatePipe
],
exports: [
]
})
export class AppModule { }
<div *ngFor="let x of (y.limit ? (y | slice: 0 : y.length) : (y | slice: 0 : 10))">