Collection তৈরি এবং Methods সংযুক্ত করা

BackboneJS Collection - ব্যাকবোনজেএস (BackboneJS) - Web Development

284

BackboneJS এর Collection একটি বিশেষ অবজেক্ট যা একাধিক Model ধারণ করে এবং তাদের উপর কাজ করতে সহায়তা করে। Collection এর মাধ্যমে আপনি ডেটার গ্রুপ, যেমন একাধিক বই, ব্যবহারকারী, বা অন্য কোনো অবজেক্ট সংরক্ষণ করতে পারেন। এটি ডেটার ম্যানেজমেন্ট এবং সংশ্লিষ্ট মডেলগুলোর সাথে যোগাযোগ সহজ করে তোলে।


Collection তৈরি করা

BackboneJS এ Collection তৈরি করতে Backbone.Collection ক্লাস এক্সটেন্ড করা হয়। একটি Collection একটি বা একাধিক Model ধারণ করে এবং বিভিন্ন ধরনের কার্যক্রম সম্পাদন করতে সহায়তা করে।

Collection এর সাধারণ কাজসমূহ:

  • Model সংগ্রহ: একাধিক Model সংরক্ষণ করা।
  • ডেটা ম্যানিপুলেশন: মডেলগুলোর উপর ফিল্টারিং, সোর্টিং, এবং অন্যান্য ম্যানিপুলেশন করা।
  • ইভেন্ট হ্যান্ডলিং: Model এর পরিবর্তন ট্র্যাক করা এবং অন্য প্রয়োজনীয় কাজ করা।

Collection তৈরি করার উদাহরণ:

// Book Model তৈরি করা
var Book = Backbone.Model.extend({
    defaults: {
        title: 'Unknown Title',
        author: 'Unknown Author',
        year: 2000
    }
});

// Book এর Collection তৈরি করা
var BooksCollection = Backbone.Collection.extend({
    model: Book  // এই Collection শুধুমাত্র Book Model ধারণ করবে
});

// Collection এর ইনস্ট্যান্স তৈরি করা
var myBooks = new BooksCollection([
    { title: 'BackboneJS for Beginners', author: 'John Doe', year: 2024 },
    { title: 'Advanced BackboneJS', author: 'Jane Smith', year: 2025 }
]);

// Collection থেকে মডেলগুলি দেখা
console.log(myBooks);  // Output: BooksCollection [Book, Book]

এখানে, BooksCollection শুধুমাত্র Book মডেল ধারণ করবে, এবং আমরা দুটি বই এর ডেটা সহ myBooks Collection তৈরি করেছি।


Collection এর Methods সংযুক্ত করা

BackboneJS এ Collection ক্লাসে কিছু বিল্ট-ইন মেথড রয়েছে, তবে আপনি নিজের প্রয়োজন অনুসারে কাস্টম মেথডও সংযুক্ত করতে পারেন। নিচে কিছু সাধারণ বিল্ট-ইন মেথড এবং কাস্টম মেথড যোগ করার উদাহরণ দেওয়া হলো।

বিল্ট-ইন মেথড:

BackboneJS এর Collection ক্লাসে কিছু শক্তিশালী মেথড অন্তর্ভুক্ত থাকে, যেমন:

  • add(): নতুন Model যোগ করা।
  • remove(): একটি Model মুছে ফেলা।
  • get(): নির্দিষ্ট Model খোঁজা।
  • reset(): সমস্ত মডেল পুনরায় সেট করা।
  • sort(): Collection সজ্জিত করা।

উদাহরণ:

// Collection থেকে Model গুলি অ্যাড করা
myBooks.add(new Book({ title: 'Learning BackboneJS', author: 'Sam Green', year: 2023 }));
console.log(myBooks.length);  // Output: 3

// Collection থেকে একটি Model মুছে ফেলা
myBooks.remove(myBooks.at(0));  // প্রথম বইটি মুছে ফেলবে
console.log(myBooks.length);  // Output: 2

// নির্দিষ্ট Model খোঁজা
var specificBook = myBooks.get(1);  // ID 1 এর Model খুঁজে বের করবে
console.log(specificBook.get('title'));  // Output: Advanced BackboneJS

// Collection এর সব Model রিসেট করা
myBooks.reset([
    { title: 'BackboneJS Essentials', author: 'Alan White', year: 2026 }
]);
console.log(myBooks.length);  // Output: 1

// Collection সজ্জিত করা
myBooks.sort();  // এটি মডেলগুলোর উপর সোর্টিং করবে যদি সঠিক sortBy প্রোপার্টি থাকে

কাস্টম মেথড সংযুক্ত করা:

আপনি যদি Collection এ নিজের কাস্টম মেথড যোগ করতে চান, তাহলে আপনি extend() ব্যবহার করতে পারেন।

var BooksCollection = Backbone.Collection.extend({
    model: Book,

    // কাস্টম মেথড: সকল বইয়ের নাম নিয়ে আসা
    getAllBookTitles: function() {
        return this.map(function(book) {
            return book.get('title');
        });
    }
});

// Collection তৈরি করা
var myBooks = new BooksCollection([
    { title: 'BackboneJS for Beginners', author: 'John Doe', year: 2024 },
    { title: 'Advanced BackboneJS', author: 'Jane Smith', year: 2025 }
]);

// কাস্টম মেথড ব্যবহার করা
console.log(myBooks.getAllBookTitles());  
// Output: ['BackboneJS for Beginners', 'Advanced BackboneJS']

এখানে getAllBookTitles() মেথডটি Collection এর সব মডেলের টাইটেল বের করে এনে একটি অ্যারে হিসেবে ফেরত দিচ্ছে।


Collection এর ইভেন্ট হ্যান্ডলিং

BackboneJS এর Collection ক্লাসে কিছু ইভেন্ট ট্রিগার করা যেতে পারে, যেমন add, remove, change, ইত্যাদি। আপনি ইভেন্ট হ্যান্ডলারের মাধ্যমে মডেলের পরিবর্তন ট্র্যাক করতে পারেন।

উদাহরণ:

var BooksCollection = Backbone.Collection.extend({
    model: Book
});

var myBooks = new BooksCollection();

// Collection এ নতুন মডেল যোগ করা হলে ইভেন্ট ট্রিগার করা
myBooks.on('add', function(book) {
    console.log('New book added: ' + book.get('title'));
});

myBooks.add(new Book({ title: 'Learning BackboneJS', author: 'Sam Green', year: 2023 }));
// Output: New book added: Learning BackboneJS

এখানে, add ইভেন্ট ট্রিগার হচ্ছে যখন একটি নতুন Book মডেল myBooks Collection এ যোগ করা হয়।


Collection এর অন্যান্য ব্যবহার

BackboneJS এ Collection এর অন্যান্য সাধারণ ব্যবহারের মধ্যে রয়েছে:

  • ফিল্টারিং এবং সোর্টিং: আপনি filter(), sortBy() ইত্যাদি ব্যবহার করে মডেলগুলিকে ফিল্টার বা সজ্জিত করতে পারেন।
  • ইন্টারনাল ডেটা ম্যানিপুলেশন: আপনি Collection এর মডেলগুলির ডেটার উপর বিভিন্ন ধরনের অ্যাকশন সম্পাদন করতে পারেন, যেমন map(), reduce() ইত্যাদি।

উদাহরণ:

// বইয়ের নামের উপর ভিত্তি করে সজ্জিত করা
var sortedBooks = myBooks.sortBy(function(book) {
    return book.get('year');
});

console.log(sortedBooks[0].get('title'));  // Output: BackboneJS for Beginners

এখানে sortBy() মেথড ব্যবহার করা হয়েছে বইয়ের প্রকাশনার বছর অনুযায়ী বইগুলো সজ্জিত করার জন্য।


সারাংশ

BackboneJS এর Collection ক্লাস বিভিন্ন Model এর একটি গ্রুপ হিসেবে কাজ করে। এটি ডেটা ম্যানিপুলেশন, ফিল্টারিং, সোর্টিং এবং অন্যান্য কার্যকলাপ সহজ করে। Collection এর কিছু গুরুত্বপূর্ণ কাজ:

  • একাধিক Model সংরক্ষণ করা।
  • মডেলগুলির উপর ফিল্টারিং, সজ্জিতকরণ এবং ডেটা অ্যাক্সেস করা।
  • ইভেন্ট হ্যান্ডলিং এবং কাস্টম মেথড সংযোগ।

এইভাবে, BackboneJS এর Collection আপনাকে ডেটার বড় গ্রুপের সঙ্গে কাজ করতে সক্ষম করে, যা মডেল-বেসড অ্যাপ্লিকেশনের জন্য অত্যন্ত উপকারী।

Content added By
Promotion

Are you sure to start over?

Loading...