Как динамически изменить метод внутри класса? - PullRequest
0 голосов
/ 04 мая 2020

Я хочу изменить метод changeThis динамически, заменив метод значением радиоэлемента. Поэтому, если я выбираю event1, метод должен быть изменен на Class.event1()

<input 
       type="radio"
       class="radio-input"
       id="1"
       value="event1"
       ng-model="$ctrl.eventType"
       ng-change="$ctrl.updateEvent()" />

JS:

updateEvent() {
 const getEvent = Class.changeThis({
    title: 'Happy Time',
    location: 'New York, NY',
    description: 'Let\'s go!'
 });
}

Я пытался:

const getEvent = Class + '.'+ this.eventType({ 
     title: 'Happy Time',
     location: 'New York, NY',
     description: 'Let\'s go!'
  });
}

но получите ошибку eventType is not a function. Когда я изменяю его на функцию, она все равно не работает.

1 Ответ

3 голосов
/ 04 мая 2020

Вы можете динамически обращаться к свойству (или методу) объекта следующим образом:

myObj["my" + "property"]

Итак, в вашем случае это будет:

Class[this.eventType]({ ... });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...