在打字稿中用sammy js声明路由

时间:2013-10-16 04:36:32

标签: javascript typescript sammy.js

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

2 个答案:

答案 0 :(得分:4)

我怀疑你遇到的问题是你通过使用fat-arrow语法(保留你的词法范围)来覆盖Sammy的范围。

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

使用“function”代替“()=>”你避免保留范围,让Sammy像往常一样工作。

答案 1 :(得分:4)

您可以将lambda与参数

一起使用



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