Angular2 RC1 管道总是通过未定义的
Angular2 RC1 Pipes Always Passing Undefined
从 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 changelog
pipes now take a variable number of arguments, and not an array that contains all arguments.
所以,现在 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(input:any, [config = '+']): any{
到
transform(input:any, config = '+'): any{
就是这样。因为在您的代码中,您绝不会使用多个参数调用管道。它始终是一个参数数组,非常适合新语法。
从 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 changelog
pipes now take a variable number of arguments, and not an array that contains all arguments.
所以,现在 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(input:any, [config = '+']): any{
到
transform(input:any, config = '+'): any{
就是这样。因为在您的代码中,您绝不会使用多个参数调用管道。它始终是一个参数数组,非常适合新语法。