Angular 从后端到前端获取值

Angular 从后端到前端获取值,angular,spring-boot,Angular,Spring Boot,我在后端(Spring boot)有一个post方法,当我发布数据时,它返回id @RequestMapping(value="/fncs", method=RequestMethod.POST) public int addFnc(@RequestBody Fnc fnc){ fncservice.addFnc(fnc); return fnc.getN_fnc(); } 我想在angular service中创建一个返回i

我在后端(Spring boot)有一个post方法,当我发布数据时,它返回
id

@RequestMapping(value="/fncs", method=RequestMethod.POST)
    public int addFnc(@RequestBody Fnc fnc){
        fncservice.addFnc(fnc);
        return fnc.getN_fnc();
    }
我想在angular service中创建一个返回
id
(编号)的函数,我尝试了这个函数,但没有成功

const baseUrl = 'http://192.168.100.9:8081/fncs';



 create(data): Observable<any>  {
       
      return this.http.post(baseUrl, data);
    } 
const baseUrl='1〕http://192.168.100.9:8081/fncs';

创建(数据):可观察的

这应该适用于您的情况。但是,直接从RESTAPI返回整数并不是最佳实践。你应该考虑在JSON对象中添加它。

   create(data): any  {
           
        this.http.post(baseUrl, data, { responseType: 'text'})
         .subscribe((res) => {
         //response will be parsed as text and we need to convert it to int
         const resInt = + res;   
         console.log(resInt);         
         return resInt;
         }, 
        (error) => {
        console.log(error);
          }
       )
   }

我怀疑你需要它,因为它在这里。但是,您可以检查在看到响应的情况下这是否有效。实际上,您不需要在服务上使用subscribe方法,而需要在任何您想对响应执行操作的地方使用subscribe方法。

因此,现在当我从服务调用create methode时,她将为我返回号码?@HamzaNouri Logic wise,如果您在设置后返回值,则应该是。我现在自己无法实现它,所以请执行它并检查.data.id其中的id是后端返回号中的all方法,我不知道“t发送一个名为idy的变量。您可以记录返回的数据,然后决定要返回什么。让我们来看看。您的代码中有很多错误,您定义了返回observable的函数,然后返回resInt(类型为int,未定义)。是的,谢谢。我并没有编译它,只是为了指出它将如何工作而快速编写它。现在我已经纠正了它。有一个prblm错误:错误没有重载匹配此调用。上一次重载导致以下错误。类型为“(error:any)=>number”的参数不能分配给类型为“()=>void”的参数。ts(2769)可观察。d.ts(54,5):最后一个重载在这里声明。我已经更新了答案。试试这一个仍然相同的prblm:Argument类型'(error:any)=>number'不能分配给参数类型'(err:any,catch:Observable)=>ObservableInput'。类型“number”不可分配给类型“ObservableInput”。ts(2345
   create(data): any  {
           
        this.http.post(baseUrl, data, { responseType: 'text'})
         .subscribe((res) => {
         //response will be parsed as text and we need to convert it to int
         const resInt = + res;   
         console.log(resInt);         
         return resInt;
         }, 
        (error) => {
        console.log(error);
          }
       )
   }