我有一个接受字符串作为输入参数的组件。 该字符串应该是本地化的,所以我以这种方式绑定该字符串:
<drawer-item [text]="getSectionName (Routes.Companies)" >...
通过这种方式,一切都运行良好,但我在 getSectionName 函数中加了一个断点,我注意到这个函数被称为很多次。 在启动时调用5-6次,然后每次我在应用程序中执行某些操作时再次调用它。
这是正确的行为还是对演出有危险?
非常感谢
修改 管道:
@Pipe({
name: 'route',
pure: false
})
export class RoutePipe implements PipeTransform {
static i:number = 0;
transform(route: Route) {
switch (route.state) {
case Routes.StartPage.state:
console.log (RoutePipe.i++);
return "H";
case Routes.Companies.state:
return "G";
case Routes.Settings.state:
return "F";
case Routes.Users.state:
return "E";
case Routes.CoursesSources.state:
return "D";
case Routes.DocumentSources.state:
return "C";
case Routes.Notifications.state:
return "B";
case Routes.NonDocumentalExpirations.state:
return "A";
default:
break;
}
}
}
修改 可以找到关于管道的非常好的解释here。
答案 0 :(得分:1)
由于您提到的性能影响,不鼓励在绑定表达式中使用函数。
首选将函数结果分配给字段并改为绑定到此字段。
在您的具体示例中,管道可能是合适的解决方案。