javascript $ Q को कोणीय डायरेक्टिव लिंक फंक्शन के पास कैसे करें?




angularjs angularjs-directive (3)

मुझे अपने निर्देश के $q link का उपयोग करने की आवश्यकता है I मुझे यह संभव वादा लपेटने की ज़रूरत है जो कि तर्कों में से एक के पीछे है (नीचे दिए गए उदाहरण देखें)। मुझे नहीं पता कि कैसे, इस फ़ंक्शन पर $q निर्भरता कैसे पारित करें।

angular.module('directives')
 .directive('myDirective', function() {
   return {
     scope: {
       onEvent: '&'
     }
     // ...
     link: function($scope, $element) {
       $scope.handleEvent() {
         $q.when($scope.onEvent()) {
            ...
         }
       }
     }
  }
}

var module = angular.module('directives');
module.directive('myDirective', ['$q', function($q) {
 ...
}]);

आप सीधे लिंक समारोह में शामिल नहीं कर सकते हैं, लेकिन आप निर्देश के कारखाने समारोह में इंजेक्शन कर सकते हैं :

angular.module('directives')
 .directive('myDirective', function($q) {
   ...

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


बस इसे अपने निर्देश पर निर्भरता के रूप में जोड़ें और $ q लिंक फ़ंक्शन में उपयोग करने योग्य होगा। यह जावास्क्रिप्ट बंद होने के कारण है

नीचे आपके कोड के आधार पर एक उदाहरण है।

angular.module('directives')
.directive('myDirective', ['$q', function($q) {
   return {
     scope: {
       onEvent: '&'
     }
     // ...
     link: function($scope, $element) {
       $scope.handleEvent() {
         $q.when($scope.onEvent()) {
           ...
         }
       }
     }
  }
}])






angular-promise