从Beta升级到RC1后,管道似乎无法正确传递数据。我收到以下信息:
ORIGINAL EXCEPTION: TypeError: Cannot read property '1' of undefined
ORIGINAL STACKTRACE:
TypeError: Cannot read property '1' of undefined
这是一个老样子,但是它显示了我在应用程序中使用管道的方式。https://plnkr.co/edit/DHLVc0?p=preview
有时我根本没有任何错误,它将页面视为没有任何管道。
在版本2.0.0-beta.16上,管道有重大更改。从angular2更新日志
管道现在接受可变数量的参数,而不是包含所有参数的数组。
所以,而不是transform(value, args){}
现在transform(value,args...){}
前
transform(value, [arg1,arg2,arg3])
现在
transform(value, arg1, arg2, arg3)
如果您不想对管道进行任何更改,则仍然可以使用它们,但是您需要更改添加参数的方式
前:
{{someValue|somePipe:arg1:arg2}}
更改为:
{{someValue|somePipe:[arg1,arg2]}} // this will work with the new syntax without changing anything in the pipe itself
或者,更好的方法是更改管道,并使transform方法接受多个参数而不是一个数组。
现在,对您的问题进行总结:
要使其与新版本一起使用,您所需要做的就是更改:
transform(input:any, [config = '+']): any{
到
transform(input:any, config = '+'): any{
就是这样。因为在您的代码中,您永远不要使用多个参数来调用管道。它始终是一个参数数组,非常适合新语法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句