2016-09-08 21 views
5

मैं एक angular2 प्रतिक्रियाशील प्रपत्र को लागू करने की कोशिश कर रहा हूँ है की संपत्ति ढेर सेट नहीं कर सकता, लेकिन मैं एक रन समय त्रुटि मिलती है जब घटककोणीय 2 प्रतिक्रियाशील रूप | ध्यान में न आया लेखन त्रुटि: [वस्तु वस्तु] जो केवल एक गेटर

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

लोड हो रहा है यह त्रुटि बिल्कुल स्पष्ट नहीं है, इसलिए मुझे यह पता लगाना मुश्किल हो रहा है कि क्या हो रहा है। मैं angular university article के साथ अनुसरण कर रहा हूं। मैंने सोचा कि शायद तोड़ने वाले बदलाव हुए थे, इसलिए मैंने कोणीय 2 चेंजलॉग की जांच की लेकिन प्रतिक्रियाशील रूपों के साथ मेरी समस्या से संबंधित कुछ भी नहीं मिला।

किसी भी मदद के लिए यहाँ की सराहना की जाएगी। मैं एक समाधान के लिए चारों ओर पोकिंग रखने जा रहा हूँ।

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

मुझे नहीं लगता कि तुम दोनों ReactiveFormsModule और FormsModule आयात होते रहना चाहिए है। मैंने आपको कोड के रूप में कोड की कोशिश की और त्रुटि नहीं मिली। [यह plunker] देखें (https://embed.plnkr.co/buK2gqHNYwlUnDVPuqTm/)। तो त्रुटि उस कोड से आती है जो आपने नहीं दिखाया था। –

+0

त्रुटि वास्तव में काफी वर्णनात्मक है। कि यह केवल 'के रूप में [वस्तु वस्तु]' (देता है फोन यह obj), आप एक संपत्ति 'stack' (स्थापित करने के लिए कहते हैं बुला' obj.stack = something' से कोशिश कर रहे हैं जानता है तुम एक वस्तु है, लेकिन आप नहीं कर रहे हैं करने की अनुमति दी है क्योंकि 'stack' संपत्ति केवल पढ़ने के लिए है। समस्या यह है कि काम कहीं भी (शायद नहीं अपने कोड, लेकिन शायद कुछ आप पुस्तकालय कोड में पारित के कारण) हो सकती है (एक गेटर, कोई सेटर है) तो आप स्टैक ट्रेस को देखने के लिए देखने के लिए वह कहाँ से आता है की जरूरत है। –

+0

@StevenLuke दोनों मॉड्यूल के लिए आवश्यक हैं, त्रुटि कोणीय प्रपत्र निर्देशों होने से आता है। – oxenfree

उत्तर

6

मुझे कभी-कभी एक ही त्रुटि मिलती है। नवीनतम जोनज/कोणीय में एक बग की तरह दिखता है। अपनी वास्तविक त्रुटि प्राप्त करने के लिए स्टैक पर ब्रेकपॉइंट डालें जहां से यह त्रुटि फेंक दी गई है। आपकी वास्तविक त्रुटि उस क्रैश के लिए इनपुट तर्क होगी जो क्रैश हो जाती है।

आप अधिक विवरण https://github.com/angular/zone.js/issues/427

+0

यह दिलचस्प है, मुझे इसे और अधिक देखना होगा। ब्रेक पॉइंट के बारे में मुझे बताने के लिए धन्यवाद, मैं इसे आज़माउंगा। – oxenfree

+1

कि थ्रेड मुझे इस मुद्दे के नीचे ले गया, मैं अपने मॉड्यूल में एक प्रदाता लापता था! – oxenfree

1

जरूरत कोणीय/zone.js पर एक मुद्दा के लिए धागा के बाद, तो एक comment वास्तविक त्रुटि के लिए नीचे हो रही की दिशा में मुझे इशारा किया।

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

मैं सिर्फ एक नई सेवा मैं बनाया के लिए एक प्रदाता याद आ रही थी।

संबंधित मुद्दे