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