绑定最佳做法

时间:2016-04-16 17:44:08

标签: angular

我有一个接受字符串作为输入参数的组件。 该字符串应该是本地化的,所以我以这种方式绑定该字符串:

<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

1 个答案:

答案 0 :(得分:1)

由于您提到的性能影响,不鼓励在绑定表达式中使用函数。

首选将函数结果分配给字段并改为绑定到此字段。

在您的具体示例中,管道可能是合适的解决方案。