Domanda

I would like to use the definitely typed sammyjs file in conjunction with typescript to declare a route on my page

Javascript for the declaration would look like this -->

    Sammy(function () {
        this.get('#:foobar', function () {
            //doStuff 
            var baz = this.params.foobar;
        });
        this.get('', function () { this.app.runRoute('get', '#All') });
    }).run();

So far I have this.

var app: Sammy.Application = Sammy();
app.get('#:foobar', () => {
    //doStuff 
    var baz = this.params.foobar;
});

Obviously params is not in the context of 'this' so my question in more detail is.. Is this the correct way to define the sammy routes and if yes then how do I access the prams.

È stato utile?

Soluzione

I suspect the problem you have is that you are overriding Sammy's scope by using the fat-arrow syntax (which preserves your lexical scope).

var app: Sammy.Application = Sammy();
app.get('#:foobar', function () {
    //doStuff 
    var baz = this.params.foobar;
});

By using "function" instead of "() =>" you avoid scope preservation and allow Sammy to work as usual.

Altri suggerimenti

You can use lambda with parameter

var app: Sammy.Application = Sammy();
app.get('#:foobar', context => {
    //doStuff 
    var baz = context.params.foobar;
});

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top