首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Subscribe不存在'Subscription‘类型

Subscribe不存在'Subscription‘类型
EN

Stack Overflow用户
提问于 2017-06-22 06:01:02
回答 1查看 17.5K关注 0票数 7

我是第一次接触angualr 2。我正在做一个小的练习应用程序。我有一个服务,当他们登录时,对用户进行身份验证。这是它的登录函数。

代码语言:javascript
复制
login(email:string, password:string){

        var loginrul="https://filing.herokuapp.com/api/v1/auth/login/";
        return this.http.post(loginrul,JSON.stringify({  password: password,email: email }),
            {headers:new Headers({'Content-Type':'application/json'})}
            ).map(res=>res.json()).
            subscribe(
                data => localStorage.setItem('id_token',data.auth_token),
                error=>console.log(error)
            );
    }

当我在组件中调用这个函数时,angualr给出了错误:“属性订阅不存在于类型‘订阅’上。

代码语言:javascript
复制
doLogin(event) {
        console.log(event);
        console.log(this.loginForm.value);


        let formData = this.loginForm.value;
        let email = this.loginForm.controls.email.value;
        let password= this.loginForm.controls.password.value;
        this.auth.login(email,password).subscribe(res =>{
            console.log(res);
            if(res.status===200){
                this.router.navigate(['dashboard']);
            }
        }
        )
    }

我想为什么angular会给出这个错误,因为我在登录函数中以及在调用登录函数时都在使用订阅。请建议一些解决方案或替代方法来实现我试图在登录功能中实现的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-22 06:07:31

你自己对这个问题的分析是正确的!删除服务中的.subscribe,仅在使用它的组件中使用它。您的服务应该在.map操作符之后返回。

如果您订阅了该服务,它将返回一个Subscription而不是Observable,这确实是您收到错误的原因。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44686959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档