próbuję wdrożyć angular2 formę bierną, ale pojawia się błąd czasu prowadzony podczas ładowania komponentuforma reaktywna kątowa2 Uncaught TypeError: nie można ustawić właściwości stos [object Object], który ma tylko funkcję pobierającą
Uncaught TypeError: Cannot set property stack of [object Object] which has only a getter
Ten błąd nie jest całkiem jasny, więc trudno mi się dowiedzieć, co się dzieje. Śledzę razem z angular university article. Pomyślałem, że może nastąpiły przełomowe zmiany, więc sprawdziłem dziennik zmian angular2, ale nie znalazłem nic związanego z moim problemem z formularzami reaktywnymi.
Każda pomoc zostanie doceniona tutaj. Mam zamiar dalej grzebać w poszukiwaniu rozwiązania.
addevent.component.ts
@Component({
selector: 'addevent',
templateUrl: 'addevent.component.html',
styleUrls: ['addevent.scss']
})
export class AddEvent {
// vars
private _addEventForm:FormGroup;
private _eventTitle:FormControl;
private _eventDescription:FormControl;
constructor(private _addEventService:AddEventService,
private _formBuilder:FormBuilder) {
// init vars
this. _eventTitle = new FormControl('', Validators.required);
this._eventDescription = new FormControl('', Validators.required);
this._addEventForm = _formBuilder.group({
'eventTitle': this._eventTitle,
'eventDescription': this._eventDescription
});
}
private addEvent():void {
console.log(this._addEventForm);
//this._addEventService.addEvent();
}
}
addevent.component.html
<div class="h3 content-title">Add Event</div>
<form [formGroup]="_addEventForm" (ngSubmit)="addEvent()">
<p>
<label>Title</label>
<input type="text" formControlName="eventTitle">
</p>
<p>
<label>Description</label>
<input type="text" formControlName="eventDescription">
</p>
<p>
<button type="submit" [disabled]="_addEventForm.invalid">Submit</button>
</p>
</form>
dashboard.module.ts
@NgModule({
declarations: [Dashboard, Navbar, Sidebar, Home, Profile, Events, AddEvent],
imports: [BrowserModule, FormsModule, ReactiveFormsModule, HttpModule],
providers: [ContentSwap, SidebarActivity, AuthService, FirebaseAuthService]
})
export class DashboardModule {}
Nie sądzę, że powinieneś importować zarówno ReactiveFormsModule, jak i FormsModule. Wypróbowałem twój kod jako wysłany i nie znalazłem błędu. Zobacz [ten plunker] (https://embed.plnkr.co/buK2gqHNYwlUnDVPuqTm/). Tak więc błąd wydaje się pochodzić z kodu, którego nie pokazywałeś. –
Błąd jest rzeczywiście opisowy. Masz obiekt, który zna on tylko jako '[obiekt Object]' (pozwala wywołać to obj), próbujesz ustawić właściwość 'stack' (powiedzmy przez wywołanie' obj.stack = something', ale nie jesteś dozwolone, ponieważ własność 'stack' jest tylko do odczytu (ma getter, no setter) Problem polega na tym, że przypisanie może wystąpić gdziekolwiek (może nie twój kod, ale może spowodowane przez coś, co przekazujesz do kodu biblioteki), więc musisz spojrzeć na ślad stosu, aby zobaczyć, skąd pochodzi. –
@StevenLuke oba moduły są wymagane, błąd wynika z posiadania dyrektyw w formie kątowej. – oxenfree