Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
284 views
in Technique[技术] by (71.8m points)

Class initialize using typescript decorators

I want to automatically initialize the class when a specific decorator is present above the class, for example:

@apiController
export class usersControllers extends lib.baseClasses.apiControllerBase().apiController {
    @lib.decorators.routesRegister().register({ "url": "/login","isLoginUrl":true})
    public postLoginUser($data) {
        let userDetails = {
            name: 'pranay dutta',
            userType: '1', // must
            age: '26',
            tokenExpiry:5000000 // must
        };

        setTimeout(() => {
            this.ok(userDetails);
        }, 100);

        return this.promise;
    }
}

In the above example when i use the @apiController decorator it should automatially initilziae the class for me, please help me with the issue

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I would do something like

function apiController(target: any) 
{
    let obj = new target.constructor();
}

UPDATE. To force decorators to fire I use the following trick. Add dummy function in the same module like this:

export function Seed() { } 

and then just call it in the initialize routines or your system. That will force all decorators from that module to fire.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...