我使用角度4,我发现了Observable概念......
我有这个对象。
JQuery
我希望找到一个对象,其属性名称为myobjects: Observable<MyObject[]>;
,object.name == 'titi'
而非return MyObject
...
Observable
有可能吗? 我找不到.. 我不明白:(
答案 0 :(得分:3)
处理流时,如果可能,应避免产生副作用。不应该将其重新分配给类变量,而应该采用Observable模式并执行:
const selectedPers$ = this.personArray$
.map(arr => arr.find(pers => pers.name === 'titi'))
.filter(pers => !!pers);
然后在您的视图中使用异步管道:
<p>The selected person is {{ selectedPers$ | async | json }}</p>
如果您想显示您可能会做的人的姓名和年龄:
<div *ngIf="selectedPers$ | async as selectedPers">
<p>Person's name is: {{ selectedPers.name }}</p>
<p>Person's age is: {{ selectedPers.age }}</p>
</div>
这样,每次personArray$
发出新值时,都会更新所选的人。
答案 1 :(得分:1)
你所要做的就是在这个Observable
中订阅并获取数组然后过滤数组以获取你想要的值,然后将其值放在你的对象中。
这是一个简单的解决方案:
myobjects: Observable<MyObject[]>;
let toto: MyObject;
this.myobjects.subscribe( result =>
let newArray = result.filter(object => object.name === 'titi');
if(newArray.length === 1 )
this.toto = newArray[0];
);
希望它可以帮到你:)