如何使用Observable数据格式化使用接口

时间:2017-11-21 11:27:29

标签: angular observable

login() {
  this.authenticationService.login(this.account)
    .subscribe(
      data => {
        const token: Token = data;
      }
    )
}

我得到了Cannot assign type Token to type Object。 理想情况下,我想const token: Token = data.token;,但我也收到错误:property 'token' does not exist on type Object即使数据实际上有令牌属性。

如何在Angular 5中使const token: Token = data.token;有效或最终成为const token: Token = data;

以下是AuthenticationService类中的登录方法:

login(account: Account) {
    return this.http.post(AuthenticateAPI,
        {
            email: account.email,
            password: account.password,
            platformId: account.platformId
        });
}

感谢。

1 个答案:

答案 0 :(得分:1)

这是你的类型定义的问题,如果没有提供数据类型,则假定你有一个Observable of Object,而typescript中的Object没有自己的属性,但你可以这样做,如果你确定您的数据类型:

<?php

    $args = array(
        'category_name'     => 'featured',
        'posts_per_page'    => 4
    );

    $the_query = new WP_Query($args);
    if($the_query->have_posts()):
    echo '  <div class="row featured-row">';
    while($the_query->have_posts()): $the_query->the_post(); ?>
        <div class="col-md-3">
        <?php the_post_thumbnail( 'fimage', array('class' => 'img-fluid') ); ?>
        <h5><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h5>
        <em>Posted on - <?php echo get_the_date(); ?></em>
        <em>Written by - <?php the_author(); ?></em>
        </div>
        <?php endwhile; 
echo '</div>';        
 endif; ?>
        <hr>
    <?php wp_reset_postdata(); ?>