【问题标题】:TypeError: Cannot set property stack of [object Object] which has only a getterTypeError:无法设置只有 getter 的 [object Object] 的属性堆栈
【发布时间】:2017-01-27 00:28:44
【问题描述】:

当我尝试在我的组件中使用该服务并在构造函数中声明它时,我收到此错误 TypeError: Cannot set property stack of [object Object] which has only a getter

下面有我的代码

import { Component } from '@angular/core';
import { FormBuilder,FormGroup} from '@angular/forms';
import { LoginService } from '../../services/login.service'; 

@Component({
  selector: 'login-selector',
  templateUrl: './app/components/login/login.component.html',
})

export class LoginComponent  { 

    form:FormGroup;
    items:Object;

    constructor(
        private formBuilder:FormBuilder,
        private loginService:LoginService){

    }
    ngOnInit() {
        this.form=this.formBuilder.group({
            userName:this.formBuilder.control(''),
            password:this.formBuilder.control(''),
            remember:this.formBuilder.control(''),
            textCaptcha:this.formBuilder.control('')
        });
    }

onSubmit(loginForm:FormGroup){
        this.loginService.getTestJson().subscribe(mediaItems => {
            this.items = mediaItems;
        });
    }
}

服务是

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';

@Injectable()
export class LoginService{
    constructor(private http: Http) {}

    getTestJson(){
        return this.http.get('http://geo.groupkt.com/ip/172.217.3.14/json').map(response => {
            return response.json();
        });


    }

}

和应用模块 ts

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { ReactiveFormsModule } from '@angular/forms';

import { AppComponent }  from './app.component';
import { LoginComponent } from './components/login/login.component';  
import { LoginService } from './services/login.service'; 

@NgModule({
  imports:      [ BrowserModule,ReactiveFormsModule ],
  declarations: [ AppComponent,LoginComponent ],
  bootstrap:    [ AppComponent ],
  providers:[LoginService]
})
export class AppModule { }

【问题讨论】:

  • 当我在组件构造器中定义登录服务时,应用程序没有运行。

标签: javascript angular angular-services


【解决方案1】:

从'@angular/http'导入{ HttpModule};在应用模块 ts 并将其添加到 NgModule 导入中

【讨论】:

    【解决方案2】:

    您的 Html 中可能有 ngModel,要这样做,您需要非常小心。

    您不能只在 formGroup 中单独使用 ngModel。它仅适用于 formGroupName

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-29
      • 2022-07-27
      • 2020-09-26
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      相关资源
      最近更新 更多