【问题标题】:Angular 10 Call a function from component to services fileAngular 10从组件调用函数到服务文件
【发布时间】:2021-10-29 05:02:26
【问题描述】:

所以我在构造括号中调用这样的函数。

  constructor()
  {
     userData.getUserBySignature(this.userDetails.api_signature);
  }

用户数据.ts

     getUserBySignature(api_signature:any)
{
    const url = this.appData.getApiUrl() + 'getUserBySignature';
    const data = this.jsonToURLEncoded({
        api_signature: api_signature
    });
    return this.http.post(url, data, { headers: this.options });
}

php函数

   function getUserBySignature()
   {
     $request = \Slim\Slim::getInstance()->request();
     $api_signature = $request->post('api_signature');

      $db = getDB();
      $sql = "SELECT api_signature, uid,username,name,first_name,last_name,bio,artisticBehaviour,location,email,profile_pic,profile_bg,updates_count,friend_count,profile_views,group_count,emailNotifications FROM users WHERE api_signature=:api_signature";
      $stmt = $db->prepare($sql);
      $stmt->bindParam("api_signature", $api_signature, PDO::PARAM_STR);
      $stmt->execute();
      $userDetails = $stmt->fetch(PDO::FETCH_OBJ); //this one?

      if (!empty($userDetails)) {
        return $userDetails;
      } else {
        $data['error'] = 'Invalid API signature33' . $api_signature;
        echo json_encode($data);
        exit;
      }
   }

}

但它不起作用。我收到“无效的 API 签名 33”。 $api_signature;没有 $api_signature。

知道怎么做吗?

【问题讨论】:

  • userData 是什么?
  • “它不起作用”是什么意思?您收到什么错误消息?
  • userData 调用服务文件 user-data.ts。
  • 我不认为进入 user-data.ts 函数会在控制台上返回 userDetails.api_signature 变量

标签: php angular ionic-framework


【解决方案1】:

需要先将服务注入构造函数,然后订阅observable来解析数据

constructor(private userData: userData)
  {
       userData.getUserBySignature(this.userDetails.api_signature).subscribe((data)=> { 
             console.log(data) // should return the data 
       });
  }

【讨论】:

  • 感谢 Sachila,你是一个真正的帮助!
猜你喜欢
  • 2019-08-22
  • 1970-01-01
  • 2019-03-24
  • 2021-04-07
  • 2021-10-26
  • 2019-02-25
  • 2018-05-05
  • 1970-01-01
  • 2017-04-10
相关资源
最近更新 更多