我只是有一个关于构造和处理服务中的http请求的响应的问题.我正在使用Angular2.alpha46 Typescript(刚开始测试它 - 我喜欢... Ps ..感谢所有一直在研究并通过github贡献的人们)
所以请注意以下几点:
登录-form.component.ts
import {Component, CORE_DIRECTIVES, FORM_DIRECTIVES} from 'angular2/angular2';
import {UserService} from '../../shared/service/user.service';
import {Router} from 'angular2/router';
import {User} from '../../model/user.model';
import {APP_ROUTES, Routes} from '../../core/route.config';
@Component({
selector: 'login-form',
templateUrl: 'app/login/components/login-form.component.html',
directives: [CORE_DIRECTIVES, FORM_DIRECTIVES]
})
export class LoginFormComponent {
user: User;
submitted: Boolean = false;
constructor(private userService:UserService, private router: Router) {
this.user = new User();
}
onLogin() {
this.submitted = true;
this.userService.login(this.user,
() => this.router.navigate([Routes.home.as]))
}
}
Run Code Online (Sandbox Code Playgroud)
从这个组件我导入我的userService,它将容纳我的http请求登录用户服务看起来像这样:
user.service.ts
import {Inject} from 'angular2/angular2'; …
Run Code Online (Sandbox Code Playgroud) 我有一个简单的方法来检查*.mp3
本地计算机中的文件是否存在。\n它应该返回 status
响应的(200、404,403 等),但它不起作用。
fileExists(url){\n return this.http.get(url).timeout(2000)\n .map(res=>res.json())\n .subscribe(\n res=>{\n console.log("res is");\n console.log(res.status)\n return res.status;},\n err =>{ \n console.log("Error is");\n console.log(err.status); \n return err.status});\n\n }\n
Run Code Online (Sandbox Code Playgroud)\n\n我为其设置了 2 秒的超时,但它只需要检查本地主机中的文件。因此,我认为,它有足够的时间来查找该文件。
\n\n它总是返回:
\n\nSubscriber {closed: false, syncErrorValue: null, syncErrorThrown: false, syncErrorThrowable: false, isStopped: false\xe2\x80\xa6}\n
Run Code Online (Sandbox Code Playgroud)\n