У вас в голове каша. Php выполняется на сервере, ангуляр на клиенте. Смешивать их можно при желании, но только если вы, какого то хитрого вида мазохист, в остальных случаях на PHP делаете RESTful а на ангуляре фронт.
С ajax нет приколов. Из Вашего кода вообще непонятно что может идти не так, видимо проблема в коде выше.
Есть правда пара но
1) Используйте $resource вместо $http
2) Используйте стрелочные функции, тогда не придется писать ужас вида var _this = this;
Виталий: Давай так, ты почитаешь ссылку, которую я добавил в ответ, а потом продолжим разговор. Лучше почитать два раза. У тебя проблемы с архитектурой.
Виталий: Я хорошо понял ваш вопрос, видимо вы не поняли мой ответ. У вас внутри конструктора - каша. Нормальная практика - результат отложенного процесса возвращать в виде Промиса. Почему ваш метод run(data) возвращает не Промис ?