我想结合使用绝对类型化的sammyjs文件和typescript在我的页面上声明路由

声明的Javascript看起来像这样->

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

到目前为止,我有这个。
var app: Sammy.Application = Sammy();
app.get('#:foobar', () => {
    //doStuff
    var baz = this.params.foobar;
});

显然,params不在“this”的上下文中,因此我的问题更加详细。.这是定义sammy路线的正确方法吗?如果是,那么我如何访问婴儿车。

最佳答案

我怀疑您遇到的问题是,您正在使用胖箭头语法(保留了您的词汇范围)来覆盖Sammy的范围。

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

通过使用“函数”而不是“()=>”,可以避免范围保留,并允许Sammy像往常一样工作。

10-06 07:48