दिलचस्प पोस्ट
प्रोसेसर की संख्या का पता लगा रहा है ऑनलाइन कोड सजावटी और फ़ॉर्मेटर ऑडियो तत्व स्रोत का HTML5 स्थानीय संग्रह – क्या यह संभव है? MVC प्रगति बार थ्रेडिंग मैं एक गैर-गतिविधि वर्ग (LocationManager) में getSystemService का उपयोग कैसे कर सकता हूं? वर्चुअल मशीन जैसे VMWare / VirtualBox का उपयोग कर डीबग करना? रिवर्स स्क्रोलिंग क्या php 'शामिल' एक समारोह या एक बयान है? क्या मैटलबैक में एक उपनगर है? यदि हां, तो यह कैसे व्यवहार करता है अगर अंतर्निहित डेटा बदलता है? आईओएस 9 में स्वाइप-योग्य तालिका देखें सेल अहस्ताक्षरित int और हस्ताक्षरित चार तुलना भिन्न-भिन्न तर्क सूची में किस प्रकार के डिफ़ॉल्ट प्रचार हैं? क्या lubridate के साथ दो अंकों के वर्षों से चार अंकों के वर्षों को परिवर्तित करने के लिए एक और अधिक सुंदर तरीका है? मोनसोड्स बनाम एंड्रॉइड स्टूडियो में मैं अपने मौजूदा ग्रहण परियोजनाओं को कैसे खोलूं?

टाइप स्क्रिप्ट नियंत्रक और कोणीय जेएस का उपयोग करके डेटा को कैसे बाँटें

मैं टाइप स्क्रिप्ट के साथ खेल रहा हूं। मैंने अपने एन्जिलर जेएस नियंत्रक को टाइप स्क्रिप्ट पर बदल दिया है लेकिन एनजी-रेपरेटर में समस्या का सामना करना पड़ रहा है। (मैं नीचे अपना नियंत्रक कोड संलग्न किया है: –

class CustomCtrl{ public customer; public ticket; public services; public cust_File; public ticket_file; public service_file; static $inject = ['$scope', '$http', '$templateCache']; constructor ( private $http, private $templateCache ){} 

Solutions Collecting From Web of "टाइप स्क्रिप्ट नियंत्रक और कोणीय जेएस का उपयोग करके डेटा को कैसे बाँटें"

मैंने TypeScript में नियंत्रक बनाने और प्रयोग करने और इसे TypeScript में TypeScript करने के बारे में अधिक विवरण का एक और जवाब जोड़ने का निर्णय लिया।

यह इस उत्तर का विस्तार है

मैं कैसे TypeScript का उपयोग कर अपने नियंत्रक को परिभाषित कर सकता हूँ? जहां हमारे पास काम कर रहे एक प्लंकर भी है

इसलिए इस निर्देश के लिए:

 export class CustomerSearchDirective implements ng.IDirective { public restrict: string = "E"; public replace: boolean = true; public template: string = "<div>" + "<input ng-model=\"SearchedValue\" />" + "<button ng-click=\"Ctrl.Search()\" >Search</button>" + "<p> for searched value <b>{{SearchedValue}}</b> " + " we found: <i>{{FoundResult}}</i></p>" + "</div>"; public controller: string = 'CustomerSearchCtrl'; public controllerAs: string = 'Ctrl'; public scope = {}; } 

हम देख सकते हैं, हमने निर्देश के रूप में यह निर्देश उपलब्ध होने के लिए घोषित किया है। हम एक टेम्पलेट भी तैयार कर चुके हैं। यह टेम्प्लेट हमारे नियंत्रक Ctrl.Search() और कॉल एक्शन को बाइंड करने के लिए तैयार है। हम कह रहे हैं कि नियंत्रक का नाम क्या है: 'ग्राहक खोज' Ctrl और इसे 'Ctrl' के रूप में उपलब्ध कराने के लिए रनटाइम पूछ रहा है (नियंत्रक एएस 🙂

अंत में हम उस वस्तु को कोणीय मॉड्यूल में इंजेक्ट करते हैं:

 app.directive("customerSearch", [() => new CustomerSearch.CustomerSearchDirective()]); 

हम $scope ng.IScope रूप में उपयोग कर सकते हैं, लेकिन इसे अधिक टाइप करने के लिए, हम अपना स्वयं का इंटरफ़ेस बना सकते हैं:

 export interface ICustomerSearchScope extends ng.IScope { SearchedValue: string; FoundResult: string; Ctrl: CustomerSearchCtrl; } 

इस तरह, हम जानते हैं, कि हमारे पास स्ट्रिंग की गई FoundResult और दूसरी स्ट्रिंग FoundResult । हमने आवेदन को यह भी सूचित किया है कि उस क्षेत्र में Ctrl को इंजेक्शन दिया जाएगा, और यह ग्राहकशैच्छिक प्रकार का होगा। और यहां नियंत्रक आता है:

 export class CustomerSearchCtrl { static $inject = ["$scope", "$http"]; constructor(protected $scope: CustomerSearch.ICustomerSearchScope, protected $http: ng.IHttpService) { // todo } public Search(): void { this.$http .get("data.json") .then((response: ng.IHttpPromiseCallbackArg<any>) => { var data = response.data; this.$scope.FoundResult = data[this.$scope.SearchedValue] || data["Default"]; }); } } 

प्लस मॉड्यूल में इसके पंजीकरण

 app.controller('CustomerSearchCtrl', CustomerSearch.CustomerSearchCtrl); 

इस नियंत्रक पर क्या दिलचस्प है? इसके पास एक सार्वजनिक एक्टन सर्च है, जिसके माध्यम से इसकी सभी मेम्बस तक पहुंच है this. , जैसे this.$http क्योंकि हमने वी.एस. में उस इंजेक्शन को निर्देश दिया था जो angular.d.ts टाइप / इंटरफ़ेस

 protected $http: ng.IHttpService 

इस्तेमाल किया जाएगा, हम बाद में आसानी से अपने तरीकों का उपयोग कर सकते हैं समान मूल्य का प्रकार है। तब .then()

 .then((response: ng.IHttpPromiseCallbackArg<any>) => {... 

जिसमें डेटा शामिल है: {} किसी भी प्रकार के …

आशा है कि यह थोड़ी मदद करता है, निरीक्षण करते हैं कि यहां सभी कार्रवाई में हैं

आपके निर्माता और $inject साथ एक समस्या है – ये एक साथ फिट होना चाहिए

 // wrong static $inject = ['$scope', '$http', '$templateCache']; constructor ( private $http, private $templateCache ){} // should be static $inject = ['$scope', '$http', '$templateCache']; constructor ( private $scope, private $http, private $templateCache ){} 

वास्तव में क्या हुआ – सभी पैराम्हों को इस अर्थ में ले जाया गया था, कि $http वास्तव में $scope था, आदि …

बस, $inject सरणी को निर्माता पैरामीटर सूची में फिट होना चाहिए

बीटीडब्लू, यही कारण है कि मैंने पहले यहां बताया थाः https://stackoverflow.com/a/30482388/1679310 ने घोषणा में प्रकारों का उपयोग करने का सुझाव दिया है:

  constructor(protected $scope: ICustomerScope, protected $http: ng.IHttpService, protected $templateCache: ng.ITemplateCacheService) { ... } 

लाइब्रेरी बाइंडबल टीएस टाइपस्क्रिप्ट के साथ बाध्यकारी डेटा सेट करने का एक वैकल्पिक तरीका है।

आपके कोड की त्वरित समीक्षा से मुझे पता चला है कि नियंत्रक की search विधि निजी है हो सकता है कि इसे जनता में बदलकर समस्या हल हो।