我将此代码转换为最新的Angular 2. authentication.service.ts
代码应该是什么样的?
app/auth/auth.service.ts(30,40): error TS7006: Parameter 'u' implicitly has an 'any' type.
// services/auth.service.ts
import {Injectable} from '@angular/core';
import {Router} from '@angular/router';
//http://4dev.tech/2016/03/login-screen-and-authentication-with-angular2/
//https://github.com/leonardohjines/angular2-login
export class User {
constructor(
public email: string,
public password: string) { }
}
var users:any = [
new User('admin@admin.com','adm9'),
new User('user1@gmail.com','a23')
];
@Injectable()
export class AuthenticationService {
constructor(
private _router: Router){}
logout() {
localStorage.removeItem("user");
this._router.navigate(['Login']);
}
login(user:any){
var authenticatedUser = users.find(u => u.email === user.email);
if (authenticatedUser){
localStorage.setItem("user", authenticatedUser);
this._router.navigate(['Home']);
return true;
}
return false;
}
checkCredentials( ){
if (localStorage.getItem("user") === null){
this._router.navigate(['Login']);
}
}
}
答案 0 :(得分:9)
您可以尝试使用$wsdl = "https://apps.test.net/Services/Gateway.asmx?WSDL";
$apiCode = "****-****-****-****-********";
ini_set("soap.wsdl_cache", "0");
ini_set("soap.wsdl_cache_ttl", "0");
ini_set("soap.wsdl_cache_enabled", "0");
$opts = array(
'ssl' => array('ciphers'=>'DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA:KRB5-DES-CBC3-MD5:KRB5-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DES-CBC3-SHA:DES-CBC3-MD5:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES128-SHA:RC2-CBC-MD5:KRB5-RC4-MD5:KRB5-RC4-SHA:RC4-SHA:RC4-MD5:RC4-MD5:KRB5-DES-CBC-MD5:KRB5-DES-CBC-SHA:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:DES-CBC-MD5:EXP-KRB5-RC2-CBC-MD5:EXP-KRB5-DES-CBC-MD5:EXP-KRB5-RC2-CBC-SHA:EXP-KRB5-DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:EXP-RC2-CBC-MD5:EXP-KRB5-RC4-MD5:EXP-KRB5-RC4-SHA:EXP-RC4-MD5:EXP-RC4-MD5'),'http'=>array(
'user_agent' => 'PHPSoapClient'
)
);
$params =array ( "encoding"=>"ISO-8859-1",
'stream_context' => stream_context_create($opts),
"trace"=>1,
"exceptions"=>1,
"connection_timeout"=>2000,'cache_wsdl' => WSDL_CACHE_NONE);
$client = new SoapClient ( $wsdl, $params );
类型而不是User
:
any
和
var users:User[] = [
(...)
];
答案 1 :(得分:9)
考虑使用(u:any)=> ...
答案 2 :(得分:2)
问题的原因是一个未正确定义的参数,因为这种情况是变量" u"以下示例:
var authenticatedUser = users.find(u => u.email === user.email);
如果你没有服务的班级模型,应该定义" u"你现在需要的字符串或其他类型:
var authenticatedUser = users.find(u:string => u.email === user.email);
答案 3 :(得分:0)
我使用的是您使用的相同示例。
不是应用任何,而是将参数类型设置为User
。
所以,你的登录方法是这样的:
login(user: User): boolean { ...
然后,删除对any
关键字的任何引用。
答案 4 :(得分:0)
变化
tsconfig.json文件
“noImplicitAny”:false,
并添加
'ng2-formly':'npm:ng2-formly / bundles / ng2-formly.umd.js',
到systemjs.config.js