BackboneJS Model এর Events (change, destroy, sync, ইত্যাদি)

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

262

BackboneJS এ Model একটি গুরুত্বপূর্ণ কনসেপ্ট, যা ডেটা ধারণ করে এবং সেই ডেটার উপর বিভিন্ন কার্যকলাপ পরিচালনা করে। Model-এ ইভেন্টস (events) ব্যবহৃত হয় ডেটার পরিবর্তন (update), মুছে ফেলা (delete), বা সিঙ্ক্রোনাইজেশন (synchronization) সংক্রান্ত কার্যকলাপগুলি পরিচালনা করার জন্য। BackboneJS এর Model events অত্যন্ত শক্তিশালী, যা change, destroy, sync, invalid, ইত্যাদি ইভেন্টগুলোর মাধ্যমে কাজ করে।

এই ইভেন্টগুলি ব্যবহার করে আপনি মডেল ডেটার উপর কার্যকরী পরিবর্তন এবং সিঙ্ক্রোনাইজেশন পরিচালনা করতে পারেন।


1. change ইভেন্ট

change ইভেন্টটি তখন ট্রিগার হয় যখন কোনো মডেলের ডেটা পরিবর্তিত হয়। যখন মডেলের ডেটা আপডেট করা হয়, তখন এটি ইভেন্টটি পুশ করে এবং সংশ্লিষ্ট ভিউ বা অন্যান্য কার্যক্রমকে জানায়।

উদাহরণ:

var Book = Backbone.Model.extend({
    defaults: {
        title: 'Unknown',
        author: 'Unknown'
    }
});

// Book মডেল তৈরি করা
var myBook = new Book();

// change ইভেন্ট লিসেন করা
myBook.on('change', function() {
    console.log('Model has changed');
});

// মডেল আপডেট করা
myBook.set('title', 'BackboneJS for Beginners');  // Output: Model has changed

এখানে, myBook.set('title', 'BackboneJS for Beginners') কল করার সময় change ইভেন্ট ট্রিগার হবে এবং কনসোলে 'Model has changed' মেসেজটি দেখাবে।


2. destroy ইভেন্ট

destroy ইভেন্টটি তখন ট্রিগার হয় যখন একটি মডেল destroy (মুছে ফেলা) করা হয়। এই ইভেন্টটি সাধারণত যখন মডেল ডিলিট করা হয়, তখন অন্য কোথাও কিছু একশন নেওয়ার জন্য ব্যবহৃত হয়।

উদাহরণ:

var Book = Backbone.Model.extend({
    defaults: {
        title: 'Unknown',
        author: 'Unknown'
    }
});

var myBook = new Book({ title: 'BackboneJS for Beginners', author: 'John Doe' });

// destroy ইভেন্ট লিসেন করা
myBook.on('destroy', function() {
    console.log('Model has been destroyed');
});

// মডেল ডিলিট করা
myBook.destroy();  // Output: Model has been destroyed

এখানে, myBook.destroy() কল করার পর destroy ইভেন্ট ট্রিগার হবে এবং কনসোলে 'Model has been destroyed' মেসেজটি দেখাবে।


3. sync ইভেন্ট

sync ইভেন্টটি তখন ট্রিগার হয় যখন মডেলটির ডেটা সার্ভারের সাথে সিঙ্ক্রোনাইজ করা হয়। এটি তখন ঘটে যখন save, fetch, create, অথবা update মেথডগুলির মাধ্যমে মডেলটি সার্ভারে ডেটা পাঠায় বা গ্রহণ করে।

উদাহরণ:

var Book = Backbone.Model.extend({
    url: '/books'  // URL যেখানে মডেল সিঙ্ক্রোনাইজ হবে
});

// sync ইভেন্ট লিসেন করা
Book.on('sync', function() {
    console.log('Model data has been synced');
});

var myBook = new Book();
myBook.save({ title: 'BackboneJS for Beginners', author: 'John Doe' });
// Output: Model data has been synced (যদি সফল সিঙ্ক্রোনাইজেশন ঘটে)

এখানে, myBook.save() কল করার সময় sync ইভেন্ট ট্রিগার হবে, যেহেতু এটি সার্ভারের সাথে ডেটা পাঠানোর জন্য ব্যবহৃত হয়।


4. invalid ইভেন্ট

invalid ইভেন্টটি তখন ট্রিগার হয় যখন মডেলটিতে ভ্যালিডেশন চেকের সময় কোনো ত্রুটি (error) পাওয়া যায়। BackboneJS মডেলগুলির জন্য আপনি validation সেট করতে পারেন, এবং যদি সেই ভ্যালিডেশন চেক ব্যর্থ হয়, তবে invalid ইভেন্ট ট্রিগার হয়।

উদাহরণ:

var Book = Backbone.Model.extend({
    defaults: {
        title: 'Unknown',
        author: 'Unknown'
    },
    validate: function(attrs) {
        if (!attrs.title) {
            return 'Title is required';
        }
    }
});

var myBook = new Book();

// invalid ইভেন্ট লিসেন করা
myBook.on('invalid', function(model, error) {
    console.log('Validation failed: ' + error);  // Output: Validation failed: Title is required
});

// মডেল সেভ করা যখন title অনুপস্থিত
myBook.save();  

এখানে, myBook.save() কল করার সময় invalid ইভেন্ট ট্রিগার হবে, কারণ title অ্যাট্রিবিউটটি সেট করা হয়নি এবং ভ্যালিডেশন চেক ব্যর্থ হয়েছে।


5. change:attribute ইভেন্ট

change:attribute ইভেন্টটি তখন ট্রিগার হয় যখন একটি নির্দিষ্ট অ্যাট্রিবিউট পরিবর্তিত হয়। যদি আপনি শুধুমাত্র একটি নির্দিষ্ট অ্যাট্রিবিউটের পরিবর্তন ট্র্যাক করতে চান, তবে এই ইভেন্টটি ব্যবহার করতে পারেন।

উদাহরণ:

var Book = Backbone.Model.extend({
    defaults: {
        title: 'Unknown',
        author: 'Unknown'
    }
});

var myBook = new Book();

// change:title ইভেন্ট লিসেন করা
myBook.on('change:title', function() {
    console.log('Title has been changed');
});

// title অ্যাট্রিবিউট আপডেট করা
myBook.set('title', 'BackboneJS for Beginners');  // Output: Title has been changed

এখানে, change:title ইভেন্টটি শুধুমাত্র title অ্যাট্রিবিউট পরিবর্তিত হলে ট্রিগার হবে।


সারাংশ

BackboneJS Model events এমন ইভেন্টস যা বিভিন্ন কাজের সময় ট্রিগার হয়, যেমন ডেটা পরিবর্তন, ডিলিট, সিঙ্ক্রোনাইজেশন বা ভ্যালিডেশন ত্রুটি। এই ইভেন্টগুলোর মাধ্যমে মডেল ডেটার উপর কার্যকরীভাবে পরিবর্তন করা এবং সে সম্পর্কে সঠিক প্রতিক্রিয়া পাওয়া সম্ভব:

  • change: যখন মডেলের ডেটা পরিবর্তিত হয়।
  • destroy: যখন মডেল মুছে ফেলা হয়।
  • sync: যখন মডেল সার্ভারের সাথে সিঙ্ক্রোনাইজ হয়।
  • invalid: যখন মডেলের ভ্যালিডেশন চেক ব্যর্থ হয়।
  • change:attribute: যখন নির্দিষ্ট কোনো অ্যাট্রিবিউট পরিবর্তিত হয়।

এই ইভেন্টগুলি BackboneJS অ্যাপ্লিকেশনকে আরও শক্তিশালী এবং ইন্টারঅ্যাকটিভ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...