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