В настоящее время я работаю над переносом проекта Backbone в проект Angular 2 (очевидно, с большим количеством изменений), и один из требований к проекту требует, чтобы определенные методы были доступны публично.
Быстрый пример:
Компонент
@component({...})
class MyTest {
private text:string = '';
public setText(text:string) {
this.text = text;
}
}
Очевидно, я мог бы иметь <button (click)="setText('hello world')>Click me!</button>
, и я тоже хотел бы сделать это. Тем не менее, я хотел бы иметь доступ к нему публично.
Как этот
<button onclick="angular.MyTest.setText('Hello from outside angular!')"></click>
Или это
// in the js console
angular.MyTest.setText('Hello from outside angular!');
В любом случае, я хотел бы, чтобы этот метод публично отображался, поэтому его можно вызвать извне Angular 2.
Это то, что мы сделали в магистрали, но я думаю, что мой Google foo недостаточно силен, чтобы найти хорошее решение для этого, используя angular.
Мы предпочли бы только выставлять некоторые методы и иметь список общедоступных apis, поэтому, если у вас есть советы для этого, это будет дополнительный бонус. (У меня есть идеи, но другие приветствуются.)