पृष्ठभूमि, हमारे ऐप में कक्षाओं/मॉड्यूल के वर्तमान कार्यान्वयन common.js और CoffeeScript कक्षाएं हैं। मैं ईएस 6 या टाइपस्क्रिप्ट के साथ काम करने के लिए सख्त समाधान ढूंढ रहा हूं, लेकिन समस्या बनी हुई है।Angular.js DI के साथ (ES6) कक्षाएं और विरासत
कोणीय-1.x का उपयोग कर कक्षा विरासत के साथ DI कैसे करें?
कोड को देखते हुए:
// SuperService.js
class SuperService {
constructor($http, $q, $etc) {
// Implementation is not important ...
}
}
export { SubService }
// SubService.js
import { SuperService } from './SuperService';
class SubService extends SuperService {
constructor($more, $di, $things, $here) {
// Implementation is not important ...
// // // // // // // // // //
// Problem exists here ... //
// // // // // // // // // //
super($we, $need, $all, $the, $super, \
$class, $di, $things, $every, $time, $we, \
$inherit, $from, $it)
}
}
export { SubService }
अवश्य एक, SubService
यहाँ में सफलतापूर्वक super()
कॉल करने के लिए सभी माता पिता डि आवश्यकताओं को फिर से परिभाषित?
हम इस समय कुछ निम्नलिखित के समान कर रहे हैं:
// CoffeeScript // Javascript
app.factory "subService", (Service) -> app.factory("subService", function(Service) {
SubService =() -> var SubService;
Service.call(@) SubService = function() {
@ Service.call(this);
return this;
# Overwrite some stuff on the "Service" };
Service::basepath = "/environments" Service.prototype.basepath = "/environments";
Service::model = Environment Service.prototype.model = Environment;
return new SubService();
new SubService() });
कौन सा बदसूरत होने से भी आदर्श से कम है, एक तरफ।
के बिल्कुल नीचे इस ऐड क्या तुमने कभी का समाधान खोजने के थाः
वह इस प्रकार एक साथ एक
@inject
डेकोरेटर कि काम करता है रखा है इस? हम भी इसी तरह के फैशन में आ रहे हैं लेकिन एक बेहतर तरीका होना चाहिए। – forrestrangerइस कारण से, मेरी टीम ने अभी तक हमारे कोणीय चीजों के लिए ES6 पर स्विच नहीं किया है, हम उम्मीद कर रहे हैं कि यह किसी भी तरह से ng-2.0 में टाइपस्क्रिप्ट चाल में संबोधित किया जाएगा, लेकिन हम कुछ भी नहीं देख रहे हैं जो हल करता है यह अभी तक –
अन्य स्थानों में भी, AngularJS में मुझे लगता है कि विरासत पर संरचना का उपयोग करने के लिए यह आसान और अधिक पठनीय है। – Thomas