更新版本的angular4从2开始,在编译时收到以下错误。
在静态解析符号值时遇到错误。不支持函数调用。考虑使用对导出函数的引用替换函数或lambda
provideAuth({
tokenName: 'token',
tokenGetter: () => localStorage.getItem('token')
})
答案 0 :(得分:0)
尝试在分配变量之前将变量存储在变量上,如下所示:
if ( yourEditText.getText().toString().equal("")) {
Toast.makeText(getApplicationContext(), "Please Give Some Input", Toast.LENGTH_SHORT).show();
}
答案 1 :(得分:0)
这是因为您正在使用AOT编译进行编译(这是一件好事,但有一些限制)。
在这种情况下,因为AOT不支持提供程序设置中的lambda函数。见the AOT documentation。要解决此问题,只需使用命名并导出函数替换lambda:
export function getToken() { localStorage.getItem('token'); }
然后引用它:
provideAuth({
tokenName: 'token',
tokenGetter: getToken
})
AOT编译还有很多其他问题,其中很多都列在这里:https://medium.com/spektrakel-blog/angular-writing-aot-friendly-applications-7b64c8afbe3f
当然,您可以通过省略--aot
命令中的ng build
参数来选择编译而不 AOT。但这会导致更大,更慢的应用程序。