2013-08-26 7 views
5

मुझे लगता है कि मैं लगभग हमेशा मार्ग परिवर्तनों में स्कॉप्स को कायम रखना चाहता हूं, और इसके कारण, मुझे लगता है कि मैंने नियंत्रकों का उपयोग करके बहुत कुछ रोक दिया है, सबकुछ सेवा के लिए सब कुछ अग्रेषित करने के अलावा । मेरे नियंत्रकों सब कुछ इस तरह लग रही अंत:

app.factory('CtrlAService', function() { 
    return { 
     scope: {}, 
    }; 
}); 

function CtrlA($scope, CtrlAService) { 
    $scope.data = CtrlAService.scope; 

} 

कहने के लिए है यही कारण है, वह सब मेरी नियंत्रक करता है एक सेवा चर करने के लिए एक चर के लिए बाध्य किया जाता है, और एक या दो समारोह बंधन के अलावा अन्य - मैं का उपयोग नहीं करते कुछ भी के लिए नियंत्रक।

क्या यह दृष्टिकोण सही है, और यदि नहीं, तो इसे पूरा करने का एक बेहतर तरीका क्या है?

मैं एक उदाहरण के आवेदन यहाँ कर दिया है: http://jsfiddle.net/Wc22k/1/

+1

मैं इस विचार प्रक्रिया को नीचे चला गया हूं और आपके जैसा ही निष्कर्ष निकाला हूं। सेवाएं ज्यादातर चीजों को संभालती हैं, नियंत्रक मुश्किल से कुछ भी करते हैं। http://stackoverflow.com/questions/12940974/maintain-model-of-scope-when-changing-between-views-in-angularjs/16559855#16559855 – Anton

उत्तर

2

मुझे लगता है कि यह आम तौर पर एक तरह से सच है अगर आप एक डेटा भारी आवेदन है। जितना अधिक आप अपने नियंत्रकों में जितना अधिक समाप्त करेंगे उतने विचारों के लिए कार्यक्षमता की आवश्यकता होगी। उदाहरण के लिए, मैं एक अनुप्रयोग के भीतर Google-maps और ng-grid का उपयोग कर रहा हूं, इसलिए मेरे सभी नियंत्रकों में नियंत्रकों के अंदर सभी कॉन्फ़िगरेशन (कभी-कभी लेबल डिस्प्ले इत्यादि के लिए फ़ंक्शन) होते हैं। इसके अलावा Google- मैप्स कोड जो मैंने पाया और संशोधित किया गया है (एमआईटी लाइसेंस प्राप्त) में एक जटिल जटिल जावास्क्रिप्ट ऑब्जेक्ट है जो Google मानचित्र कोड और निर्देश के लिए नियंत्रक को लपेटता है।

तो लघु संस्करण, हाँ डेटा भारी एप्लिकेशन में आपका अधिकांश कोड सेवाओं में समाप्त होता है और नियंत्रक बस किसी सेवा से कुछ डेटा को देखने के लिए दृश्य को जोड़ रहे हैं, अन्य मामलों में नहीं। मैं देखता हूं कि आप निरंतर दायरे के बारे में क्या कह रहे हैं लेकिन मुझे लगता है कि नियंत्रक में दृश्य के लिए जरूरी सभी तर्क छोड़ना सबसे अच्छा है (मैं इसे सेवा में डेटा मॉडल के विपरीत दृश्य मॉडल के रूप में देखता हूं)। यह सिर्फ इस बात पर स्पष्ट अलगाव रखता है कि क्या हो रहा है और क्या प्रभावित कर रहा है। उदाहरण के लिए यदि मुझे कुछ विचारों के बीच डेटा का एक टुकड़ा जारी रखना है, तो मैं इसे सेवा में संग्रहीत करता हूं (इसके बजाय "मूल्य" का उपयोग करने पर विचार कर रहा है क्योंकि यह अधिक अर्थपूर्ण और कार्यात्मक रूप से उपयुक्त है लेकिन इस बार फिर से करने के लिए समय नहीं लिया है, कारक)।

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