2016-06-08 3 views
5

मैं अपने कोणीय 2 प्रोजेक्ट में कोणीय 2-इन-मेमोरी-वेब-एपीआई का उपयोग करने की कोशिश कर रहा हूं। मुझे किसी भी दस्तावेज़ को खोजने में परेशानी हो रही है जो दिखाती है कि एक ही संग्रह नाम के साथ विभिन्न अनुरोधों के लिए अलग-अलग डेटा ऑब्जेक्ट्स को कैसे वापस किया जाए। मेरा मानना ​​है कि मैं अपने SEED_DATA के लिए उपयोग की जाने वाली कक्षा बंद है लेकिन मुझे यकीन नहीं है कि मैं जो चाहता हूं उसे पाने का सही तरीका कैसे बनाएं।HTTP कॉल से अलग-अलग परिणाम एक ही संग्रह नाम के साथ कोणीय 2-इन-मेमोरी-वेब-एपीआई

यहाँ httpPaths पर इस

export class AppTestData { 
    createDb() { 
     let studentData = { 
      name: "Student Name", 
      grade: "B" 
     }; 
     let otherStudentData = { 
      name: "Other Student Name", 
      grade: "A" 
     }; 


     let httpPaths = { 
      somepath: { 
       student: studentData, 
       anotherPath: { 
        student: otherStudentData 
       } 
      } 
     } 
     return httpPaths; 
    } 
} 

मेरे प्रयास कुछ ऐसा दिखाई देगा वस्तु बंद है मेरी main.ts

import {provide} from "@angular/core"; 
import {bootstrap} from "@angular/platform-browser-dynamic"; 
import {HTTP_PROVIDERS, XHRBackend} from "@angular/http"; 
import {AppComponent} from "./app.component"; 
import {SEED_DATA, InMemoryBackendService} from "angular2-in-memory-web-api/in-memory-backend.service"; 
import {AppTestData} from "./AppTestData"; 

bootstrap(AppComponent, [ 
    HTTP_PROVIDERS, 
    provide(XHRBackend, {useClass: InMemoryBackendService}), 
    provide(SEED_DATA, {useClass: AppTestData}) 
]); 

मेरे AppTestData.ts फ़ाइल है। लेकिन विचार यह होगा कि मैं "कुछ/छात्र" को http कॉल प्राप्त करने और छात्र डेटा वापस प्राप्त करने और किसी अन्य को कॉल करने के लिए "कुछ/अन्य पथ/छात्र" को http कॉल प्राप्त करने और अन्य स्टूडेंटडेटा वापस प्राप्त करने के लिए कहूंगा।

निम्नलिखित काम करता प्रतीत होता है लेकिन मैं अपना पूरा पथ निर्दिष्ट करना चाहता हूं जिसमें मैं "कुछ/छात्र" और "कुछ/अन्य पथ/छात्र" को पोस्ट करना चाहता हूं और विभिन्न परिणाम प्राप्त करना चाहता हूं।

let httpPaths = { 
      student: studentData 
    } 

उत्तर

4

मेरा मानना ​​है कि आप बदले बयान में कोष्ठक याद किया:

return {httpPaths}; 

डेवलपर एक उदाहरण पाया जा सकता है here

+1

यदि आप देखते हैं कि उनके पास कमरे, स्पीकर और सत्र हैं, तो वे अपनी वस्तुओं के रूप में हैं, फिर वह उन्हें वापस लौटने से पहले {} में लपेटता है। मैंने वही किया है, सिवाय इसके कि मैंने चाबियाँ निर्दिष्ट की हैं और लौटने से पहले उन्हें अपने चर में डाल दिया है। कहें कि उसके पास "एपीआई/रूम/सेव" और "एपीआई/स्पीकर/सेव" यूआरएल था जिसे वह कॉल करना और ऑब्जेक्ट वापस करना चाहता था। उसे एक सेव ऑब्जेक्ट बनाना होगा और केवल कॉल को दोनों कॉल के लिए ऑब्जेक्ट को वापस करना होगा। मैं जानना चाहता हूं कि वह सहेजने वाले ऑब्जेक्ट की बजाय कॉल को सहेजने पर अपनी स्पीकर ऑब्जेक्ट या उसके रूम ऑब्जेक्ट को कैसे वापस कर सकता है। – Blake

4

यदि आप चाहते हैं बनाया करने के लिए "नकली" दो अलग-अलग डेटाबेस आप इस वाक्यविन्यास का पालन करना होगा:

export class AppTestData { 
    createDb() { 
     let heroes = { 
      name: "Batman", 
      city: "Gotham" 
     }; 
     let countries = { 
      name: "America", 
      code: "GR" 
     }; 

     return {heroes,countries}; 
    } 
} 

आपकी सेवा में यो यू एक वादा और http अनुरोध के लिए यूआरएल के साथ उपभोग कर सकते हैं होगा:

repo 
-app 
    -shared 
    myservice.ts  // this consumes the data from the InMemory DB 
    data.service.db.ts // this implements the InMemoryDbService 
    ... 

कम से कम इस तरह मैं समस्या हल हो गई है: private httpUrl = '../contacts/contacts';

मेरे फ़ाइल संरचना की तरह कुछ है। वास्तव में आधिकारिक दस्तावेज अब तक गरीब है।

+0

ग्रेट धन्यवाद। ठीक वही जो मेरे द्वारा खोजा जा रहा था। – hogan

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