![]() |
1
22
你可以用这样的东西( ngFor local variables
那你可以 Intercept input property changes with a setter
|
![]() |
2
59
|
![]() |
3
7
对于我来说,使用Typescript在Angular2中工作。
|
![]() |
4
5
1.添加占位符为正在打印的内容添加占位符:
2.添加一个容器
使用创建一个容器
3.创建一个回调方法
添加
别忘了使用
4.使用NGF
|
|
5
4
使用[attr.ready]代替[ready],如下所示 <li *ngFor="#item in Items; #last = last" [attr.ready]="last ? false : true"> |
|
6
3
我在RC3中发现接受的答案不起作用。然而,我已经找到了一种方法来处理这个问题。对我来说,我需要知道ngFor何时完成运行MDL componentHandler来升级组件。 首先,您需要一个指令。
接下来将其导入组件并将其添加到指令中
当该属性设置为true时,它将在@Input()声明下运行该方法。在我的例子中,它运行componentHandler.upgradeAllRegistered()。但是,它可以用于您选择的任何东西。通过绑定到ngFor语句的“last”属性,它将在完成时运行。
|
![]() |
7
1
我为这个问题写了一个演示。这个理论是基于
the accepted answer
但这个答案并不完整,因为
我写 a complete demo 对于这个问题。
从“@angular/core”导入{Component,Input,OnInit};
模板
应用程序组件中的使用情况
|
![]() |
8
-1
我还没有深入了解ngFor如何渲染引擎盖下的元素。但从观察中,我注意到它经常倾向于对每个迭代项的表达式求值不止一次。 这会导致在检查“last”变量时进行的任何typescript方法调用,有时会触发多次。 为了保证ngFor在正确完成对项目的迭代时只调用一次typescript方法,您需要添加一个小的保护,以防止ngFor在后台执行的多表达式重新计算。
指令代码
在您的模块中声明上述指令后(假设您知道如何执行,如果不知道,请询问,我希望用代码段更新此指令),以下是如何将指令与ngFor一起使用:
“doSomething”在这里没有括号“()”,因为我们只是传递对typescript方法的引用,而不是在这里实际调用它。
|