我得到了这个错误错误类型错误:错误类型错误:数组。地图不是一个函数错误,而使用这个角管道,这里是代码。
export class CharacterWithCommasPipe implements PipeTransform {
transform(array) {
return array.map(item => item.name).join(', ');
}
}
您可能没有在数组上调用此管道。
理想情况下,如果管道的输入
不是预期的格式,您应该确保抛出错误。这样它将以更优雅的方式实现
为此,对管道进行以下更改:
import { Pipe, PipeTransform } from "@angular/core";
@Pipe({
name: "joiner"
})
export class JoinerPipe implements PipeTransform {
transform(arrayToJoin: Array<any>, joinBy?: string) {
if (arrayToJoin && arrayToJoin.map) {
return arrayToJoin.map(item => item.name).join(joinBy || ", ");
}
throw new Error('joiner pipe only expects an Array as a first argument');
}
}
然后你可以这样使用它:
<p> With Joiner Value - {{ items | joiner: ' and ' }}</p>
<p> Without Joiner Value - {{ items | joiner }}</p>
<p> With wrong Input that throws error on the console - {{ someOtherItems | joiner: ', ' }}</p>
在看起来像这样的数据上:
items = [
{ name: 'A' },
{ name: 'B' },
{ name: 'C' },
{ name: 'D' }
];
someOtherItems = 'ABCD';
这是您的参考的工作示例演示代码。
问题内容: 我能指望每次调用doSomething()时完成的nodeID映射吗? 我以为node.js中的所有回调都是异步的?我确实读过一篇关于通用编程的文章,说回调可以是同步的,但是我不确定node.js吗? 问题答案: JavaScript也是一种功能编程语言。您在这里拥有的是“高阶函数”,该函数将函数作为参数。高阶函数是同步的(但请参见下面的注释)。 资料来源: 功能编程 JavaScri
以下代码未订阅: 但是如果我这样做,它确实订阅: 更新:这个工作太 但当我添加逻辑时,它并没有 我遵循RxJS官方文档:https://rxjs-dev.firebaseapp.com/api/operators/find 我甚至必须在,当我执行时,什么也不会打印出来。我也尝试过使用管道。 对象: 我传递的昵称是将对象与“Devpato”进行比较
我在Jenkins中写了一个Groovy DSL声明性管道脚本。该脚本在运行在Windows Server 2012上的从代理上执行。在这个代理机器上有一个命令行可执行文件,叫做。我使用Groovy的方法执行程序,并输入在构建时传递到管道中的参数。 该脚本很简单,分两个阶段执行以下操作 接受一个参数 从SVN签出一个项目 通过一个函数执行程序 我用的是Jenkins 2.235.3 可执行文件返回
我试图在Beam管道完成后,在Google DataFlow上运行一个函数(或管道)。 目前,我已经构建了一个hack来运行该函数,方法是使用 ... func在哪里: 但是有更好的方法吗?
问题内容: 我在尝试使用数据数组呈现元素时遇到问题。在的下面的代码中,可以正常工作,但列表项未出现。 我究竟做错了什么?请随时指出并非最佳做法的任何内容。 问题答案: GoshaArinich是正确的,您应该返回您的元素。但是,在这种情况下,您应该在浏览器控制台中收到讨厌的红色警告 数组或迭代器中的每个子代都应具有唯一的“键”道具。 因此,您需要在列表中添加“键”: 或使用es6 箭头功能放下并做