在 TypeScript 中的 Sammy Js 中声明路由

declare routes in sammy js in typescript

本文关键字:声明 路由 Js Sammy TypeScript 中的      更新时间:2023-09-26

我想将绝对类型的sammyjs文件与打字稿结合使用,在我的页面上声明路由

声明的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;
});

显然,参数不在"这个"的上下文中,所以我更详细的问题是......这是定义 sammy 路由的正确方法吗,如果是,那么我如何访问婴儿车。

我怀疑你遇到的问题是你通过使用胖箭头语法(保留你的词汇范围)覆盖了 Sammy 的范围。

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

通过使用"function"而不是"() =>",您可以避免范围保留并允许Sammy照常工作。

您可以将 lambda 与参数一起使用

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