আপনি নিজের পছন্দমতো পরিষেবা পেতে $ ইনজেকশন পরিষেবাটিও ব্যবহার করতে পারেন। আমি যদি সেই সময়ের আগে পরিষেবার নামটি না জানি তবে পরিষেবা ইন্টারফেসটি জানি তবে আমি এটি দরকারী মনে করি। উদাহরণস্বরূপ এমন একটি নির্দেশ যা কোনও টেবিলটিকে এনজিআরসোর্স শেষ বিন্দুতে বা জেনেরিক মুছুন-রেকর্ড বোতামে প্লাগ করবে যা কোনও এপিআই শেষ পয়েন্টের সাথে ইন্টারেক্ট করে। আপনি প্রতিটি নিয়ামক বা ডেটা-উত্সের জন্য সারণী নির্দেশকে পুনরায় প্রয়োগ করতে চান না।
template.html
<div my-directive api-service='ServiceName'></div>
my-directive.directive.coffee
angular.module 'my.module'
.factory 'myDirective', ($injector) ->
directive =
restrict: 'A'
link: (scope, element, attributes) ->
scope.apiService = $injector.get(attributes.apiService)
এখন আপনার 'বেনামে' পরিষেবা সম্পূর্ণ উপলব্ধ। যদি এটি এনজিআরসোর্স উদাহরণস্বরূপ হয় তবে আপনি আপনার ডেটা পাওয়ার জন্য স্ট্যান্ডার্ড এনজিআরসোর্স ইন্টারফেসটি ব্যবহার করতে পারেন
উদাহরণ স্বরূপ:
scope.apiService.query((response) ->
scope.data = response
, (errorResponse) ->
console.log "ERROR fetching data for service: #{attributes.apiService}"
console.log errorResponse.data
)
বিশেষত এপিআই এন্ডপয়েন্টগুলির সাথে ইন্টারেক্ট করে এমন উপাদান তৈরি করার সময় আমি এই কৌশলটি খুব দরকারী বলে খুঁজে পেয়েছি।