Вы можете либо связать это с вашей функцией (мой предпочтительный способ обработки подобных ситуаций), либо использовать замыкание, чтобы разделить this.get('store')
в обоих местах.
привязка
...
success: this.actions.update.bind(this)
....
замыкание
const store = this.get('store');
$.ajax({
...
success: update
});
// Note this isn't an action anymore, but a declared function
function update() {
...
}
Вы также можете использовать Функции стрелки ES6 , которые поддерживают контекст этого
$.ajax({
...
success: data => {
}
...
});
Кроме того, я бы серьезно подумал о том, чтобы исключить свойства success
и error
в вызове $.ajax
- он возвращает обещание, с которым вы можете связать .then
.Вам по-прежнему нужно либо связать this
, либо использовать замыкание, либо использовать функцию стрелки, но есть преимущества при переходе к использованию обещаний, а не обратных вызовов.
Использование обещания
$.ajax({...}).then(
successFunction,
errorFunction
);