কিভাবে বিভিন্ন কাজ ঘোষণা করবেন?
সংকলন, নিয়ামক, প্রাক-লিঙ্ক এবং পোস্ট লিঙ্ক
যদি কেউ চারটি ফাংশন ব্যবহার করতে হয় তবে নির্দেশিকা এই ফর্মটি অনুসরণ করবে:
myApp.directive( 'myDirective', function () {
return {
restrict: 'EA',
controller: function( $scope, $element, $attrs, $transclude ) {
// Controller code goes here.
},
compile: function compile( tElement, tAttributes, transcludeFn ) {
// Compile code goes here.
return {
pre: function preLink( scope, element, attributes, controller, transcludeFn ) {
// Pre-link code goes here
},
post: function postLink( scope, element, attributes, controller, transcludeFn ) {
// Post-link code goes here
}
};
}
};
});
লক্ষ্য করুন যে সংকলন একটি প্রাক-লিঙ্ক এবং পোস্ট-লিংক উভয় ফাংশনযুক্ত একটি বস্তু প্রদান করে; কৌণিক ভাষায় আমরা বলি যে সংকলিত ফাংশনটি একটি টেম্পলেট ফাংশন দেয় ।
সংকলন, নিয়ামক এবং পোস্ট লিঙ্ক
যদি pre-link
প্রয়োজনীয় না হয়, সংকলন ফাংশনটি কেবল সংজ্ঞায়িত বস্তুর পরিবর্তে পোস্ট-লিংক ফাংশনটি ফিরিয়ে দিতে পারে, যেমন:
myApp.directive( 'myDirective', function () {
return {
restrict: 'EA',
controller: function( $scope, $element, $attrs, $transclude ) {
// Controller code goes here.
},
compile: function compile( tElement, tAttributes, transcludeFn ) {
// Compile code goes here.
return function postLink( scope, element, attributes, controller, transcludeFn ) {
// Post-link code goes here
};
}
};
});
কখনও কখনও, কেউ একটি যুক্ত করতে ইচ্ছুক compile
(পোস্ট) link
পদ্ধতিটি সংজ্ঞায়িত হওয়ার পরে পদ্ধতি । এই জন্য, একটি ব্যবহার করতে পারেন:
myApp.directive( 'myDirective', function () {
return {
restrict: 'EA',
controller: function( $scope, $element, $attrs, $transclude ) {
// Controller code goes here.
},
compile: function compile( tElement, tAttributes, transcludeFn ) {
// Compile code goes here.
return this.link;
},
link: function( scope, element, attributes, controller, transcludeFn ) {
// Post-link code goes here
}
};
});
নিয়ামক এবং পোস্ট লিঙ্ক link
যদি কোনও সংকলনের ফাংশন প্রয়োজন হয় না, তবে কেউ তার ঘোষণাটি পুরোপুরি এড়িয়ে যেতে পারে এবং এর অধীনে পোস্ট-লিংক ফাংশন সরবরাহ করতে পারে link
নির্দেশকের কনফিগারেশন অবজেক্টের সম্পত্তিটির :
myApp.directive( 'myDirective', function () {
return {
restrict: 'EA',
controller: function( $scope, $element, $attrs, $transclude ) {
// Controller code goes here.
},
link: function postLink( scope, element, attributes, controller, transcludeFn ) {
// Post-link code goes here
},
};
});
কোনও নিয়ামক নেই
উপরের উদাহরণগুলির যে কোনও একটিতে, controller
প্রয়োজন না হলে একজন কেবল ফাংশনটি সরিয়ে ফেলতে পারে । সুতরাং উদাহরণস্বরূপ, যদি কেবলমাত্র post-link
ফাংশনটির প্রয়োজন হয় তবে একজন ব্যবহার করতে পারেন:
myApp.directive( 'myDirective', function () {
return {
restrict: 'EA',
link: function postLink( scope, element, attributes, controller, transcludeFn ) {
// Post-link code goes here
},
};
});