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 は「これ」のコンテキストにないので、私の質問の詳細は次のとおりです。これはサミー ルートを定義する正しい方法ですか。

4

2 に答える 2

4

パラメータでラムダを使用できます

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

于 2015-03-19T13:00:04.517 に答える
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 に答える