angular2反应形式|未捕获的TypeError:无法设置只有getter的[object Object]的属性堆栈

时间:2016-09-08 19:36:13

标签: angular typescript

我正在尝试实现angular2反应形式,但在加载组件时出现运行时错误

Uncaught TypeError: Cannot set property stack of [object Object] which has only a getter

这个错误并不完全清楚,所以我很难搞清楚发生了什么。我跟着angular university article。我想也许有一些重大变化,所以我检查了angular2更改日志,但没有发现任何与我的问题相关的反应形式。

这里有任何帮助。我将继续寻找解决方案。

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 {}

4 个答案:

答案 0 :(得分:6)

我有时会遇到同样的错误。看起来像是最新的zonejs / angular中的一个bug。要获得真正的错误,请在堆栈上放置一个断点,从该错误处抛出此错误。你真正的错误将是它崩溃的函数的输入参数。

如果您需要更多详情https://github.com/angular/zone.js/issues/427

答案 1 :(得分:1)

在angular / zone.js问题的主题之后,comment指出了我要找到真正错误的方向。

uncaught TypeError: Cannot create property 'configurable' on string 'Error: No provider for AddEventService!

我刚刚错过了我创建的新服务的提供商。

答案 2 :(得分:0)

在我的情况下,有一个chrome扩展引发了错误,在zone.js的故障点设置了一个断点,显示了有问题的扩展。然后,我获取了扩展名ID,并在chrome中禁用了该扩展名,一切都很好。

答案 3 :(得分:0)

当我在使用@ViewChild库时不小心将两个装饰器放在ngxs上时,出现了此错误,该库依赖于不变性,例如:

  import { Select } from '@ngxs/store';

  // @Select(AppLoginAPIState.getAuthenticatedUser) // uncomment to produce the error
  @ViewChild('redirectCheckModal')
  redirectCheckModal: ModalComponent;