angulartypescript

Where to keep utility functions in angular2 that are available in templates


I have a few simple "pure" utility functions in my app which i want to keep in one place. The problem is, i can import them in my components by using:

import { utilities } from '../shared/utilities'

However these utility function/methods are not available in my template files (because they are bound to the component class only). I have to create an alias of these functions in my component in order to use them. Is there a better way to do this?


Solution

  • I think you should be able to use the utilities in the template if you inject it in your controller. Something like this :

    import { Utilities } from './shared/utils';
    
    @Component({
        ....
        ....
    })
    export class ExampleComponent {
        constructor(public util: Utilities) { }
    }
    

    In your template you should be able to use util.your_function

    Update:

    export class ExampleComponent {
        constructor(public util: Utilities) { }
    
        get staticMethod1() { return Utilities.staticMethod1(); }
    }