Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度-将模板绑定到变量?_Angular - Fatal编程技术网

Angular 角度-将模板绑定到变量?

Angular 角度-将模板绑定到变量?,angular,Angular,假设您有一个*ngFor循环,并且希望将当前循环的值保存到typescript中的一个变量中。有什么好办法吗 示例 <tr *ngFor="let item of items | async"> <td>{{item.one}}</td> <td>{{item.two}}</td> <-- I want to save this one away --> <td>{{ite

假设您有一个*ngFor循环,并且希望将当前循环的值保存到typescript中的一个变量中。有什么好办法吗

示例

<tr *ngFor="let item of items | async">
    <td>{{item.one}}</td>
    <td>{{item.two}}</td>         <-- I want to save this one away -->
    <td>{{item.three}}</td>
</tr>

到目前为止,我一直在使用
。必须有更好的方法来实现这一点,因为这个iframe方法似乎并不总是有效。

有几种好方法可以从组件控制器中的异步订阅获取值。一种是只订阅控制器并分配变量。一种是在控制器中使用单独的订阅,但我最喜欢的是只使用“do”操作符:

在组件中:

this.items = this.itemCollection.valueChanges().do(items => console.log(items));

然后你可以产生你认为合适的任何副作用。

什么是
1
2
3
?“保存”是什么意思?这些只是
项的不同属性的示例名称。Save的意思是将它存储到一个typescript变量中,正如我在第一句中提到的那样。在这种情况下,“保存”是什么意思?您的代码所做的是将这些属性的字符串化值添加到DOM中。您是在问如何将异步订阅中的值获取到您的组件控制器中吗?Bryan-是的,我认为这可能是一种表达方式。我对术语“控制器”有点困惑,但我认为它意味着类型脚本逻辑。1) 在您的解决方案中,我在哪里指定要保存的项目?2) 您可以直接访问typescript中可观察到的原始firebase吗?3) 什么是开放源码服务?我认为更多的代码可能对我真的很有用。我将在上面添加我的firebase获取。1。它只是typescript组件类的一个术语。2.不,但是你可以在任何可观察流中添加任何你想要的操作符,其中一个是“do”,它会给你可观察流的值,这样你就可以。。。做随你的便。3.这只是我编造的可观测数据的任意来源,因为我不知道你的是什么样子。更新了我的答案供你编辑。您无法知道数组中的哪个项当前正在渲染,我也无法想象在什么情况下这将是有用的信息。您只需使用do运算符对整个数组进行操作。我如何指定要在
do
中获取的属性?您拥有整个数组,只需对其进行迭代,并像对待任何其他数组一样对待它。items.forEach(item=>console.log(item.two))
this.items = this.itemCollection.valueChanges().do(items => console.log(items));