这更像是一个"最佳实践"问题.有三个球员:a Component,a Service和a Model.在Component被调用Service从数据库中获取数据.该Service方法是使用:
this.people = http.get('api/people.json').map(res => res.json());
Run Code Online (Sandbox Code Playgroud)
返回一个Observable.
在Component可以只订阅Observable:
peopleService.people
.subscribe(people => this.people = people);
}
Run Code Online (Sandbox Code Playgroud)
但是,我真正想要的是Service返回从数据库中检索Array of Model的数据创建的对象Service.我意识到Component可以在subscribe方法中创建这个数组,但我认为如果服务可以做到这一点并使其可用,那将会更清晰Component.
如何Service创建一个新的Observable,包含该数组,并返回?
@View注释的所有属性也存在于@Component.前面的例子使用了两者,但是从beta.8(也许更早)开始,angular.io网站上的代码示例仅使用@Component.这是创建组件的首选方式吗?
据我所知,Observable.debounce()可用于处理快速火表输入.由于Http GET也返回一个Observable,我想它有可能去掉快速的http请求吗?我尝试过,debounceTime()但似乎没有做任何事情.
public getStuff(p1, area:string, p2:string): Observable<number> {
return this.http.get(some_url)
.map(r => r.json())
.debounceTime(10000)
.catch(this.handleError);
};
Run Code Online (Sandbox Code Playgroud) 如果父组件将对象传递给子组件
<child-component [someValue]="someObject"></child-component>
Run Code Online (Sandbox Code Playgroud)
如果子组件修改了someObject,这个改动会反映在父组件上吗?