আমি কেবল কৌণিক জাল দিয়ে শুরু করছি, এবং কয়েকটি পুরাতন জিকুয়েরি প্লাগইনগুলি কৌনিক নির্দেশে রূপান্তর করতে কাজ করছি। আমি আমার (উপাদান) নির্দেশের জন্য ডিফল্ট বিকল্পগুলির একটি সেট সংজ্ঞায়িত করতে চাই, যা কোনও অ্যাট্রিবিউটের বিকল্প মান উল্লেখ করে ওভাররাইড করা যেতে পারে।
অন্যরা কীভাবে এটি করেছে তার জন্য আমি একবার ঘুরে দেখেছি এবং কৌণিক-ইউআই লাইব্রেরিতে ui.bootstrap.pagination তেমন কিছু করেছে বলে মনে হচ্ছে।
প্রথমে সমস্ত ডিফল্ট বিকল্পগুলি একটি ধ্রুবক অবজেক্টে সংজ্ঞায়িত হয়:
.constant('paginationConfig', {
itemsPerPage: 10,
boundaryLinks: false,
...
})
তারপরে কোনও getAttributeValueইউটিলিটি ফাংশন নির্দেশক নিয়ামকের সাথে সংযুক্ত থাকে:
this.getAttributeValue = function(attribute, defaultValue, interpolate) {
return (angular.isDefined(attribute) ?
(interpolate ? $interpolate(attribute)($scope.$parent) :
$scope.$parent.$eval(attribute)) : defaultValue);
};
অবশেষে, এটিকে বৈশিষ্ট্যগুলিতে পড়ার জন্য এটি লিঙ্কিং ফাংশনে ব্যবহৃত হয়
.directive('pagination', ['$parse', 'paginationConfig', function($parse, config) {
...
controller: 'PaginationController',
link: function(scope, element, attrs, paginationCtrl) {
var boundaryLinks = paginationCtrl.getAttributeValue(attrs.boundaryLinks, config.boundaryLinks);
var firstText = paginationCtrl.getAttributeValue(attrs.firstText, config.firstText, true);
...
}
});
এটি মানক হিসাবে ডিফল্ট মানগুলির একটি সেট প্রতিস্থাপন করতে চাইলে একটি জটিল সেটআপের মতো বলে মনে হয়। এটি করার জন্য অন্য কোনও উপায় আছে যা প্রচলিত? অথবা সর্বদা কোনও ইউটিলিটি ফাংশন যেমন getAttributeValueএবং পার্স অপশনগুলি এভাবেই সংজ্ঞায়িত করা স্বাভাবিক ? এই সাধারণ কাজের জন্য লোকেরা কী কী কৌশল নিয়েছে তা জানতে আগ্রহী।
এছাড়াও, বোনাস হিসাবে, আমি কেন interpolateপ্যারামিটার প্রয়োজন তা পরিষ্কার নয় ।
ui.bootstrap.paginationআরও কিছু জটিল বিষয়গুলিতে কোনও চিন্তা ? ভেবেছিল যে সংকলন ফাংশনটি ব্যবহার করা হলে পরে করা কোনও বৈশিষ্ট্য পরিবর্তনগুলি প্রতিফলিত হবে না, তবে এটি সত্য বলে মনে হয় না কারণ কেবলমাত্র এই পর্যায়ে ডিফল্ট সেট করা আছে। অনুমান করুন এখানে অবশ্যই কিছু ট্রেড অফ করা হচ্ছে।