Angular 具有角5参数的可观测值

Angular 具有角5参数的可观测值,angular,observable,Angular,Observable,我刚接触Angular 5,我有一个问题希望有人能帮我 我有一个父组件和一个子组件Parent将操作对象传递到子组件中 在parent.component.html中: Action类有一个方法doSomething(arg:string),该方法应该返回一个可观察的对象,而子对象可以订阅该对象。我希望子组件能够执行以下操作: action.doSomething(“子级传入的某个参数”).subscribe(//通常的下一个、错误和完整回调) 本质上我想要的是angular/common/h

我刚接触Angular 5,我有一个问题希望有人能帮我

我有一个
父组件和一个
子组件
Parent
操作
对象传递到
子组件中

在parent.component.html中:

Action
类有一个方法
doSomething(arg:string)
,该方法应该返回一个可观察的对象,而
子对象可以订阅该对象。我希望
子组件能够执行以下操作:

action.doSomething(“子级传入的某个参数”).subscribe(//通常的下一个、错误和完整回调)

本质上我想要的是angular/common/http的
http.get(url)
所做的。它接受一个参数并返回一个可观察值。这正是我想做的。

例如,
doSomething(arg)
方法可以执行类似于进行
http.post(…)
调用的操作。但是如果我可以避免的话,我不想让孩子直接调用http.post(..)
。我希望子组件可以重用,因为它只调用
doSomething(…)
,父组件定义
doSomething(…)
实际应该做什么

孩子对
doSomething(…)
返回的内容不感兴趣。它只是想知道调用是成功还是失败

方法
doSomething(…)
看起来如何我将如何创建要返回的可观察对象?如需实际代码示例,将不胜感激

我不能只是将回调从父级传递给子级,因为子级需要知道调用是成功还是失败


非常感谢你

下次,您应该显示问题上下文中的所有
方法
变量
。在这种情况下,
doSomething()
。它有什么作用?它的回报是什么

尽管如此,您还是应该转到
服务
。来自
操作
不一定与中的
操作
相同。它是可变的。您对孩子的
操作操作
根本不会影响家长中的
操作

因此,
doSomething
返回什么?孩子是否对
doSomething
返回的值感兴趣


如果是,您应该使用
服务

谢谢您的评论。我已经编辑了我的问题,以提供更多的上下文。我已经测试了它。就像我以为你想在doSomething()中调用HttpRequest,但不知何故,当Child调用doSomething订阅时,子组件(在父组件中)不会意识到这一点。@Coffeee这是我玩的stackblitz。如果您将
HttpClient
注入到您的孩子中,然后将注入的
HttpClient
传递到父级上的
doSomething()
,并使用传递的http调用
get
,然后它就工作了。我希望你能利用这一点并加以调整。问题是我不想让孩子知道父母想要做什么。所以我不想让孩子知道任何http调用。本质上,我想要的是angular/common/http的
http.get(url)
所做的。它接受一个参数并返回一个可观察值。那正是我想做的。然后你把事情搞复杂了。是否要从Child调用
doSomething()
?如果没有,正如你所说,你只想从Child知道在Parent中的调用是否成功,你只需要有另一个@Input,并根据Parent调用的结果将输入设置为true/false。我想你可以通过映射来检查成功,并将结果作为新的可观察结果返回