2013-05-16 11 views
9

मैं एक वेब क्लाइंट बना रहा हूं जो कोणीय के साथ एक सेटिंग वेब एपीआई के साथ काम करता है। बहुत सारी सेटिंग्स हैं और वे सभी वैकल्पिक हैं। अगर मैं एक सेटिंग भेजता हूं, तो इसे सहेजा जाना चाहिए। जो सेटिंग्स नहीं भेजी जाती हैं उन्हें नहीं बदला जाना चाहिए।कोणीय रूप - केवल बदलते फ़ील्ड भेजें

आवश्यकता है सभी सेटिंग्स के लिए परिवर्तन बटन सहेजें।

मुझे आश्चर्य है कि अंगुलर में इसे लागू करने का कोई तरीका है या नहीं।

मैंने एचटीएमएल form का उपयोग नहीं करने और डेटा एकत्र करने और स्वयं द्वारा एजेक्स अनुरोध बनाने के बारे में सोचा था, लेकिन फिर मैं सत्यापन तंत्र खो देता हूं (जो कोणीय-यूआई मान्य के साथ अच्छी तरह से काम कर रहा है)।

मैंने फ़ॉर्म को छोटे रूपों में विभाजित करने और केवल उन फॉर्मों को सबमिट करने के बारे में सोचा जहां ng-dirty गलत नहीं है, लेकिन कुछ अनुरोध विफल होने पर यह आंशिक सहेज सकता है (और यह आवश्यकता के विरुद्ध है)।

कोई विचार?

उत्तर

6

कोणीय दस्तावेज़ में एक उदाहरण है जिसमें रीसेट फ़ंक्शन को लागू करने के लिए एनजी-कॉपी शामिल है।

http://docs.angularjs.org/cookbook/advancedform

आप अपने प्रारंभिक मॉडल (मास्टर कॉपी) बदली हुई/प्रस्तुत वस्तु (बदला प्रतिलिपि) करने के लिए तुलना कर सकते हैं और केवल बदली हुई वस्तुएँ प्रस्तुत (या बस उन है कि/अपरिवर्तित ही कर रहे हैं हटाना) प्रस्तुत दौरान।

http://blog.vjeux.com/2011/javascript/object-difference.html के साथ कॉपी और मास्टर को डिफ करें इसे सरणी को संभालने के लिए अतिरिक्त कार्य की आवश्यकता है। या JSON में बदलने और JSON https://github.com/benjamine/JsonDiffPatch

+0

यह वह नहीं है जिसे मैं ढूंढ रहा था, लेकिन मुझे लगता है कि इसका मतलब है कि कोणीय इस कार्यक्षमता को बॉक्स से बाहर नहीं पेश करता है। धन्यवाद। –

+2

यह पहिया को फिर से शुरू कर रहा है - कोणीय फॉर्म कंट्रोलर और ngModel पहले से ही गंदे चेक निष्पादित करता है, कक्षाएं जोड़ता है और इस जानकारी को $ स्कोप में संग्रहीत करता है। R4w87173 –

+0

@ArturBodera से जवाब देखें यदि मैं इस प्रक्रिया को स्वचालित करना चाहता हूं तो क्या होगा? ऐसा लगता है कि मुझे इनपुट नामों और मॉडल विशेषताओं का ट्रैक रखने की आवश्यकता है। (मैं वास्तव में पूछ रहा हूँ)। – keyser

17

आप देख सकते हैं फार्म या किसी नामित क्षेत्र प्रस्तुत करने से पहले संशोधित किया गया है Diff। प्रपत्र एक नाम है और अपने आदानों जैसे नाम हैं:

<form name="myForm"> 
    <input name="input1"> 
</form> 

नियंत्रक में आप वस्तु $scope.myForm और $scope.myForm.input1 के लिए उपयोग होगा, और इन वस्तुओं एक $dirty संपत्ति जो सच है अगर मूल मूल्य था होगा उपयोगकर्ता द्वारा संशोधित

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