2015-10-16 9 views
5

में संग्रह अपडेट से निपटना मैं ऑरेलिया में संग्रह अपडेट से निपटने का सबसे अच्छा तरीका संघर्ष कर रहा हूं। कल्पना कीजिए कि मैं (टिप्पणी के साथ खबर की सूची) दृश्य दिखाई देते हैं जो निम्नलिखित मॉडल से repeat.fors के सेट का उपयोग कर बनाया जाता है:ऑरेलिया

var news = [ 
    { 
     id: 1, 
     title: 'Some title', 
     comments : ['comment1'] 
    }, 
    { 
     id: 2, 
     title: 'Some title', 
     comments : ['comment1'] 
    }, 
    { 
     id: 3, 
     title: 'Some title', 
     comments : ['comment1'] 
    }  
]; 

मैं भी टाइमर setInterval() है, जो खबर की सूची हर दूसरे को हासिल करेगा उपयोग कर बनाई गई है । अब कल्पना करें कि निम्न खबर की सूची वापस आता है:

var freshNews = [ 
    { 
     id: 1, 
     title: 'Some title', 
     comments : ['comment1', 'comment2'] 
    }, 
    { 
     id: 2, 
     title: 'Some title', 
     comments : ['comment1'] 
    } 
]; 

अगर मैं अपने repeat.for में इस जागरण याहू सूची का उपयोग यह पूरे डोम कि पैदा कर रहा झिलमिलाहट और उपयोगकर्ता द्वारा दर्ज डेटा खो दिया जा रहा समाचार प्रदर्शित पुनर्निर्माण करेंगे (कल्पना है कि प्रत्येक के तहत टिप्पणियां दर्ज करने के लिए समाचार textarea है)।

मैं इस परिदृश्य पर कैसे काम करूं? यह कोणीय में काफी अच्छी तरह से काम करता है क्योंकि यह गंदा जांच और तरीका ngRepeat काम करता है (कोणीय उस वस्तु से संबंधित डोम को नष्ट नहीं करेगा जो बदले नहीं है), प्रतिक्रिया में यह छाया डोम के लिए भी अच्छा धन्यवाद करेगा।

मैं ऑरेलिया में इस परिदृश्य से कैसे निपटूं?

+0

बस एक टिप्पणी, मेरा मानना ​​है कि आप प्रतिक्रिया के लिए "वर्चुअल" डोम का मतलब है, छायाडोम नहीं। –

+0

हाँ आप सही हैं –

+0

क्या आपने इसे हल किया है? पिछले साल मुझे इसी तरह की समस्या थी लेकिन मुझे संतोषजनक समाधान नहीं मिला। –

उत्तर

2

प्रश्न संग्रह के बारे में वास्तव में नहीं है। यह एक सामान्य जेएस सवाल है। How to duplicate object properties in another object?

तो आप वास्तव में इसे अच्छी तरह से सौदा कर सकते हैं।

आप कर सकते हैं:

iterate over your updates { 
    find a relevant object in news 
    if there is none { 
     just push the new one to collection 
    } 
    otherwise { 
     apply new values to the old one 
    } 
} 

भले ही आप संपादक एक ही वस्तु से बंधा रखना - यह उन टिप्पणी को नष्ट नहीं होंगे।

freshNews.forEach(n=>{ 

    let update = news.find(o=>o.id==n.id) 
    if (!update) { 
     news.push(n) 
    } 
    else { 
     Object.assign(update,n) 
    } 
}) 
संबंधित मुद्दे