Text Input এবং Value Binding

Web Development - নকআউটজেএস (KnockoutJS) - KnockoutJS এর Form Bindings
346

KnockoutJS তে Text Input এবং Value Binding হল data binding এর একটি গুরুত্বপূর্ণ ফিচার, যা ব্যবহারকারীর ইনপুট এবং view-model এর মধ্যে two-way data binding তৈরি করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি observable ডেটা এবং ইউজারের ইনপুট ফিল্ডের মধ্যে স্বয়ংক্রিয়ভাবে যোগাযোগ স্থাপন করতে পারেন। যখন value binding ব্যবহার করা হয়, তখন কোনো ইনপুট ফিল্ডের মান পরিবর্তন হলে তা view-model এ প্রভাব ফেলবে এবং vice versa।

KnockoutJS তে Text Input এবং Value Binding

KnockoutJS তে text input এবং value binding প্রধানত input ফিল্ডগুলোর মধ্যে ব্যবহার করা হয়, যেখানে ব্যবহারকারী ডেটা ইনপুট করে এবং সেটি সরাসরি view-model এ আপডেট হয়। এটি two-way data binding এর একটি উদাহরণ।

1. Text Input Binding (Value Binding)

Text Input Binding মূলত input ফিল্ডের মান এবং observable ডেটার মধ্যে সম্পর্ক স্থাপন করে। এটি two-way binding এর মাধ্যমে কাজ করে, যেখানে observable ডেটা এবং input ফিল্ডের মান একে অপরের সাথে সিঙ্ক্রোনাইজ থাকে।

Example: Text Input Binding

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>KnockoutJS Text Input Binding</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.5.1/knockout-min.js"></script>
</head>
<body>

    <h2>Your Name: <span data-bind="text: name"></span></h2>

    <input type="text" data-bind="value: name, valueUpdate: 'input'" placeholder="Enter your name" />

    <script>
        // ViewModel
        function AppViewModel() {
            this.name = ko.observable("John Doe");  // Observable data
        }

        // Apply bindings
        ko.applyBindings(new AppViewModel());
    </script>

</body>
</html>

Explanation:

  • এখানে, name একটি observable ডেটা। data-bind="value: name" ব্যবহার করে এটি input ফিল্ডের সাথে যুক্ত করা হয়েছে।
  • valueUpdate: 'input' ব্যবহার করার মাধ্যমে, ইনপুট ফিল্ডে টাইপ করার সাথে সাথে observable ডেটা আপডেট হবে, এবং এর বিপরীতও ঘটবে, অর্থাৎ name পরিবর্তিত হলে ইনপুট ফিল্ডে স্বয়ংক্রিয়ভাবে আপডেট হবে।

2. Radio Button Binding

Radio Button এর জন্য KnockoutJS এ value binding ব্যবহৃত হয়, যাতে আপনি একটি বা একাধিক বিকল্পের মধ্যে নির্বাচন করতে পারেন এবং সেই মান view-model এ প্রতিফলিত হয়। Radio button binding মূলত single-selection এর জন্য ব্যবহৃত হয়, যেখানে একাধিক বিকল্পের মধ্যে একটি নির্বাচন করা হয়।

Example: Radio Button Binding

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>KnockoutJS Radio Button Binding</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.5.1/knockout-min.js"></script>
</head>
<body>

    <h3>Your Favorite Color: <span data-bind="text: favoriteColor"></span></h3>

    <label><input type="radio" data-bind="value: 'Red', checked: isRed"> Red</label>
    <label><input type="radio" data-bind="value: 'Blue', checked: isBlue"> Blue</label>
    <label><input type="radio" data-bind="value: 'Green', checked: isGreen"> Green</label>

    <script>
        function AppViewModel() {
            // Observable data for color selection
            this.favoriteColor = ko.observable("Red");

            // KnockoutJS binds radio buttons using checked and value bindings
            this.isRed = ko.computed(function() {
                return this.favoriteColor() === "Red";
            }, this);
            this.isBlue = ko.computed(function() {
                return this.favoriteColor() === "Blue";
            }, this);
            this.isGreen = ko.computed(function() {
                return this.favoriteColor() === "Green";
            }, this);
        }

        // Apply bindings
        ko.applyBindings(new AppViewModel());
    </script>

</body>
</html>

Explanation:

  • এখানে, favoriteColor একটি observable ডেটা। এটি radio buttons এর মানের সাথে যুক্ত থাকে।
  • checked এবং value বाइন্ডিং ব্যবহার করে radio buttons এ নির্বাচন করা মান observable এ সিঙ্ক্রোনাইজ করা হয়।
  • computed observables ব্যবহার করা হয়েছে যাতে আমরা রেড, ব্লু বা গ্রিন বিকল্পগুলির জন্য সঠিক radio button নির্বাচন করতে পারি।

3. Select Option Binding

Select option binding হল যখন আপনি একটি select dropdown এর মানকে observable ডেটার সাথে যুক্ত করেন। এটি single-selection এর জন্য ব্যবহৃত হয়, যেখানে ব্যবহারকারী একটি অপশন নির্বাচন করতে পারে।

Example: Select Option Binding

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>KnockoutJS Select Option Binding</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.5.1/knockout-min.js"></script>
</head>
<body>

    <h3>Selected Country: <span data-bind="text: selectedCountry"></span></h3>

    <select data-bind="options: countries, value: selectedCountry"></select>

    <script>
        function AppViewModel() {
            // Observable data for selected country
            this.selectedCountry = ko.observable();

            // List of countries for the select dropdown
            this.countries = ko.observableArray(["USA", "Canada", "India", "UK", "Australia"]);
        }

        // Apply bindings
        ko.applyBindings(new AppViewModel());
    </script>

</body>
</html>

Explanation:

  • এখানে, selectedCountry একটি observable ডেটা যা select অপশনের মান ধারণ করে।
  • options বাইন্ডিং ব্যবহার করা হয়েছে যাতে আপনি observableArray ডেটা (যেমন countries) কে ড্রপডাউন অপশন হিসাবে দেখাতে পারেন।
  • value বাইন্ডিং দিয়ে আমরা select অপশনের সাথে selectedCountry ডেটাকে সিঙ্ক্রোনাইজ করেছি।

Advantages of Text Input and Value Binding in KnockoutJS:

  1. Two-Way Data Binding:
    • KnockoutJS এ value binding ব্যবহার করলে আপনি two-way binding পেতে পারেন, যার মাধ্যমে View এবং ViewModel একে অপরের সাথে সিঙ্ক্রোনাইজ থাকে। এতে ইউজারের ইনপুট ও view-model এর ডেটার মধ্যে একে অপরের সাথে সরাসরি সম্পর্ক থাকে।
  2. Declarative Syntax:
    • KnockoutJS এর data binding সেন্ট্রালাইজড এবং ডিক্লেয়ারেটিভ সিনট্যাক্স ব্যবহার করে যা কোডকে পরিষ্কার এবং মেইনটেনেবল রাখে।
  3. Automatic UI Updates:
    • যখন observable ডেটা পরিবর্তিত হয়, তখন UI স্বয়ংক্রিয়ভাবে আপডেট হয়, ফলে আপনাকে UI ম্যানুয়ালি আপডেট করার প্রয়োজন হয় না।
  4. Code Reusability and Maintenance:
    • KnockoutJS MVVM প্যাটার্ন ব্যবহার করে UI লজিক এবং ডেটা লজিক আলাদা রাখতে সাহায্য করে, যা কোডের পুনঃব্যবহারযোগ্যতা এবং রক্ষণাবেক্ষণ সহজ করে তোলে।

KnockoutJS তে Text Input, Value Binding, Radio Buttons, এবং Select Options এর মধ্যে two-way data binding ব্যবহার করে আপনি একটি ডাইনামিক, রিয়েল-টাইম ইউজার ইন্টারফেস তৈরি করতে পারেন। Value Binding মূলত ব্যবহারকারী ইন্টারঅ্যাকশন এবং ডেটার মধ্যে যোগাযোগ স্থাপন করতে ব্যবহৃত হয়, যা আপনার অ্যাপ্লিকেশনকে আরও ইন্টারঅ্যাকটিভ এবং কার্যকরী করে তোলে। KnockoutJS এর মাধ্যমে UI এবং ডেটার মধ্যে automatic synchronization সহজ হয়, যা ওয়েব ডেভেলপমেন্টে কার্যকারিতা এবং পারফরম্যান্স বাড়ায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...