Я добавляю функциональность к существующему приложению, которое использует Angular 1.5.7 вместе с TypScript, я раньше не использовал ни одну из этих технологий и не столкнулся с тупик.Получение следующей ошибки: TypeError: Невозможно прочитать свойство «InviteUser» неопределенного
Я получаю следующую ошибку TypeError: Не удается прочитать свойство «InviteUser» неопределенной
Вот мой код.
AddEditContactController.ts
import CT = require('../../models/commontypes');
import E = require('../../models/Employers');
import * as Common from "../../../common/commonapp";
import EmployerService = require('../services/EmployerService');
class AddEditContactController {
static controllerId = 'addEditContact';
static $inject = ['$uibModalInstance', '$routeParams', '$http', Common.LookupService.serviceId, 'Item' ];
public InviteSent: boolean = false;
public OrganisationID: number;
constructor(protected $modalInstance: ng.ui.bootstrap.IModalServiceInstance,
private $routeParams: E.Employed.IViewEmployerProfesionalBodyRouteParams,
protected $http: ng.IHttpService,
private LookupService: Common.LookupService,
public Item: E.Employed.Contact,
private EmployerService: EmployerService)
{
this.OrganisationID = +$routeParams.EmployerID;
}
public Cancel() {
this.$modalInstance.dismiss('cancel');
}
public Save(form) {
if (form.$valid) {
//don't need to pass anything back because the same instance we passed in will have been manipulated
this.$modalInstance.close(this.Item);
}
}
public SendContactInvite(form) {
if (form.$valid) {
this.EmployerService.InviteUser(this.Item.ID, this.OrganisationID).then(() => { // The Error is pointing to this line
this.InviteSent = true;
});
}
}
}
export = AddEditContactController;
Ошибка указывает на строку в функции SendContactInvite, как ItemID и OrganisationID содержат значение, хотя, Я-то отсутствует?
Вот остальные
EmployerService.ts
InviteUser(ContactID: number, OrganisationID: number): ng.IHttpPromise<{}> {
return this.$http({
url: '/employer/InviteUser',
method: 'POST',
data: {
ContactID: ContactID,
OrganisationID: OrganisationID
}
});
}
AddEditContact.html
<div class="form-group">
<div class="pull-right ng-scope">
<button type="button" class="btn btn-employed" ng-click="modal.SendContactInvite(form)" ng-disabled="form.$invalid"><span class="glyphicon glyphicon-send" aria-hidden="true" uib-tooltip="Invite contact to become a member" tooltip-append-to-body="true"></span> Send Invite</button>
</div>
Любая помощь/совет будет ppreciated, заранее спасибо
Вероятно, это потому, что «это» в сфере исполнения не так, как вы думаете. Попробуйте сделать это в своем 'AddEditContactController' ctor:' this. SendContactInvite = это. SendContactInvite.bind (это); '. Это устраняет проблему? –
Nope .. Я по-прежнему получал ту же ошибку – HitTheSky