3

我想使用明确类型的 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 路线的正确方法吗?如果是,那么我如何访问婴儿车。

4

2 回答 2

4

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

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

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

于 2013-10-16T07:24:48.037 回答
4

您可以使用带有参数的 lambda

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

于 2015-03-19T13:00:04.517 回答