Vue.js @ পরিবর্তে নির্বাচিত বিকল্প পান


102

প্রথমত, আমি বলতে চাই যে ভিউতে আমি নতুন, এবং ভু ব্যবহার করে এটি আমার প্রথম প্রকল্প। আমার কম্বোবক্স রয়েছে এবং আমি নির্বাচিত কম্বোবক্সের ভিত্তিতে আলাদা কিছু করতে চাই। আমি পৃথক vue.html এবং টাইপস্ক্রিপ্ট ফাইল ব্যবহার করি। আমার কোড এখানে।

<select name="LeaveType" @change="onChange()" class="form-control">
     <option value="1">Annual Leave/ Off-Day</option>
     <option value="2">On Demand Leave</option>
</select>

এবং এখানে আমার টিএস ফাইল

onChange(value) {
    console.log(value);
}

আমার টাইপ স্ক্রিপ্ট ফাংশনে নির্বাচিত বিকল্প মান কীভাবে পাবেন? ধন্যবাদ

উত্তর:


188

v-modelনির্বাচিত বিকল্পের মানটির সাথে আবদ্ধ করতে ব্যবহার করুন । এখানে একটি উদাহরণ

<select name="LeaveType" @change="onChange($event)" class="form-control" v-model="key">
   <option value="1">Annual Leave/ Off-Day</option>
   <option value="2">On Demand Leave</option>
</select>
<script>
var vm = new Vue({
    data: {
        key: ""
    },
    methods: {
        onChange(event) {
            console.log(event.target.value)
        }
    }
}
</script>

আরও রেফারেন্স এখান থেকে দেখা যায় ।


4
এটির ত্রুটি হচ্ছে "কী সংজ্ঞায়িত করা হয়নি"। আমাকে কি প্রথমে ভি-মডেল সংজ্ঞায়িত করতে হবে? যদি হ্যাঁ, কিভাবে?
এইচএইচপিপি

হ্যাঁ, আপনি কীটি প্রতিস্থাপন করতে যে কোনও নাম সেট করতে পারেন। তবে নিশ্চিত হয়ে নিন যে এটি ডেটার সম্পত্তি।
রামউইন

আমি এখনও তা পেতে পারি না .. আমি জানি যে আমি এটির কোনও নাম পরিবর্তন করতে পারি তবে আমি একটি সতর্কতা পাচ্ছি "[ভ্যু সতর্কতা]: সম্পত্তি বা পদ্ধতি" নির্বাচিত "উদাহরণ হিসাবে সংজ্ঞায়িত করা হয়নি তবে রেন্ডারের সময় উল্লেখ করা হয়েছে। নিশ্চিত করুন যে এটি সম্পত্তি ডেটা বিকল্পে বা
শ্রেণিভিত্তিক

আপনার স্ক্রিপ্টে একটি টাইপো থাকতে পারে কারণ স্ক্রিপ্টে 'নির্বাচিত' শব্দের কোনও উপস্থিতি নেই। দয়া করে এটি পরীক্ষা করে দেখুন এবং উত্তরের লিঙ্কটি দেখুন। আমি এতে একটি ডেমো উদাহরণ যুক্ত করছি।
রামউইন

"নির্বাচিত" আমার মডেলের নাম model আমি যদি আপনার কোডটি
আবারও লিখি তবে

37

@ ভি-অন এর জন্য একটি শর্টকাট বিকল্প । আপনি কেবলমাত্র কয়েকটি ভ্যু পদ্ধতি কার্যকর করতে চাইলে @ ব্যবহার করুন । যেহেতু আপনি ভ্যূ পদ্ধতিগুলি সম্পাদন করছেন না, পরিবর্তে আপনি জাভাস্ক্রিপ্ট ফাংশনটি কল করছেন, জাভাস্ক্রিপ্ট ফাংশনটি কল করতে আপনাকে অ্যানচেঞ্জ বৈশিষ্ট্যটি ব্যবহার করতে হবে

<select name="LeaveType" onchange="onChange(this.value)" class="form-control">
 <option value="1">Annual Leave/ Off-Day</option>
 <option value="2">On Demand Leave</option>
</select>

function onChange(value) {
  console.log(value);
}

আপনি যদি ভ্যূ পদ্ধতিতে কল করতে চান তবে এটির মতো করুন-

<select name="LeaveType" @change="onChange($event)" class="form-control">
 <option value="1">Annual Leave/ Off-Day</option>
 <option value="2">On Demand Leave</option>
</select>

new Vue({
  ...
  ...
  methods:{
    onChange:function(event){
       console.log(event.target.value);
    }
  }
})

আপনি মানটি আবদ্ধ করতে নির্বাচিত উপাদানটিতে ভি-মডেল ডেটা অ্যাট্রিবিউট ব্যবহার করতে পারেন ।

<select v-model="selectedValue" name="LeaveType" onchange="onChange(this.value)" class="form-control">
 <option value="1">Annual Leave/ Off-Day</option>
 <option value="2">On Demand Leave</option>
</select>

new Vue({
    data:{
        selectedValue : 1, // First option will be selected by default
    },
    ...
    ...
    methods:{
        onChange:function(event){
            console.log(this.selectedValue);
        }
    }
})

আশাকরি এটা সাহায্য করবে :-)


আমি যখন ভয়েজে দ্বিতীয়টি সম্পাদন করি তখন আমি নিম্নলিখিত ত্রুটিটি পেয়েছি: আনকাচড টাইপ এরিয়ার: অপরিশোধিত এর 'প্রয়োগ' সম্পত্তিটি পড়তে পারি না
TheDevWay

আমি কোডের কোথাও "প্রয়োগ" ব্যবহার করি নি। আপনি যে কোডটিতে ত্রুটিটি পাচ্ছেন তা দয়া করে ভাগ করে নিতে পারেন?
সন্তানু বেরা 22'19

23

পরিবর্তিত মানটি হবে event.target.value

const app = new Vue({
  el: "#app",
  data: function() {
    return {
      message: "Vue"
    }
  },
  methods: {
    onChange(event) {
      console.log(event.target.value);
    }
  }
})
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<div id="app">
  <select name="LeaveType" @change="onChange" class="form-control">
   <option value="1">Annual Leave/ Off-Day</option>
   <option value="2">On Demand Leave</option>
</select>
</div>


6

উদ্ধারের জন্য আপনি ভি-মডেলও ব্যবহার করতে পারেন

<template>
    <select name="LeaveType" v-model="leaveType" @change="onChange()" class="form-control">
         <option value="1">Annual Leave/ Off-Day</option>
         <option value="2">On Demand Leave</option>
    </select>
</template>

<script>
export default {
    data() {
        return {
            leaveType: '',
        }
    },

    methods: {
        onChange() {
            console.log('The new value is: ', this.leaveType)
        }
    }
}
</script>

আমি কীভাবে নির্বাচিত বিকল্পের উপর নির্ভর করে ইনপুট পাঠ্য যুক্ত করব?
এঞ্জেল

0

আপনি আপনার @ পরিবর্তন = "অন চেঞ্জ ()" সংরক্ষণ করতে পারবেন ব্যবহারের পর্যবেক্ষক পারেন। ভিউ গণনা এবং ঘড়ি, এটি এর জন্য ডিজাইন করা। আপনার যদি কেবল মূল্য প্রয়োজন এবং অন্যান্য জটিল ইভেন্টের পরিমাণের প্রয়োজন হয় না।

কিছুটা এইরকম:

  ...
  watch: {
    leaveType () {
      this.whateverMethod(this.leaveType)
    }
  },
  methods: {
     onChange() {
         console.log('The new value is: ', this.leaveType)
     }
  }

দয়া করে নোট করুন যে প্রহরীরা ব্যয়বহুল। উপরেরগুলি একটি গণিত সম্পত্তি হিসাবেও অর্জন করা যেতে পারে যা অনেক বেশি সস্তা।
রমেশ পরিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.