2014-01-17 2 views
2

Я новичок в TypScript и пытаюсь представить ее некоторым моим материалам, но у меня возникают трудности с некоторыми функциями области и стрелки.Машинопись - Функция стрелки с параметрами

В JavaScript, мой код выглядит следующим образом ...

var model = params.model; 

model.Prototypes.bind('change', function(e){ 
    // some code to execute when the event occurs 
    model.set([some values]); // this performs an operation to the actual top level model 
}); 

Хорошо, так что есть две проблемы. Когда я иду, чтобы сделать это в машинописном, я делаю это так ...

class ClassName { 
    model: any; 

    subscribe() { 
     this.model.Prototypes.bind("change", function(e){ 
     // FIRST PROBLEM 
     this.model .... 
     }); 
    } 
} 

Хорошо, так что это не работает до тех пор, меченая часть. this.model больше не является ссылкой на то, что я думаю, потому что он находится в контексте функции, а не «класса». Поэтому я сделал кое-какие исследования и понял, что должен использовать arrow function, потому что это сохранит контекст.

Проблема в том, что я не могу представить, как выполнять функцию стрелки, и все еще передавать параметры, которые мне нужны, например значение change для события привязки или часть function(e). Я видел только примеры, которые не ожидают никаких параметров.

ответ

2

Синтаксис стрелка/лямбда будет выглядеть следующим образом:

class ClassName { 
    model: any; 

    subscribe() { 
     this.model.Prototypes.bind("change", e => { 
     // FIRST PROBLEM 
     this.model .... 
     }); 
    } 
} 

Если у вас есть более одного параметр, используйте следующий формат:

(p1, p2, p3) => { ... } 

Надеется, что это помогает,

Смежные вопросы