angularjs - কাস্টম নির্দেশকের স্কোপ বাইন্ডিংয়ে '@', '&', '=' এবং '>' চিহ্ন ব্যবহার করুন: কৌণিক জেএস




angularjs-directive angularjs-scope (4)

অ্যাঙ্গুলারজেএস-এ কাস্টম নির্দেশনা বাস্তবায়নে এই চিহ্নগুলির ব্যবহার সম্পর্কে আমি অনেক কিছু পড়েছি তবে ধারণাটি এখনও আমার কাছে পরিষ্কার নয়। আমি বলতে চাইছি, আমি যদি কাস্টম নির্দেশিকায় স্কোপ মানগুলির একটি ব্যবহার করি তবে এর অর্থ কী?

var mainApp = angular.module("mainApp", []);
mainApp.directive('modalView',function(){
  return{
     restrict:'E',
     scope:'@' OR scope:'&' OR scope:'=' OR scope:'>' OR scope:true
  }
});

এখানে সুযোগ নিয়ে আমরা ঠিক কী করছি?

অফিসিয়াল ডকুমেন্টেশনে "স্কোপ: '>'" আছে কিনা তাও আমি নিশ্চিত নই। এটি আমার প্রকল্পে ব্যবহৃত হয়েছে।

সম্পাদনা করুন -1

"স্কোপ: '>'" এর ব্যবহার আমার প্রকল্পে একটি সমস্যা ছিল এবং এটি স্থির করা হয়েছে।


একটি কৌণিক জেএস নির্দেশিকায় সুযোগটি আপনাকে সেই উপাদানটির বৈশিষ্ট্যগুলিতে ডেটা অ্যাক্সেস করতে দেয় যেখানে নির্দেশ প্রয়োগ করা হয়।

এটি একটি উদাহরণ সহ সেরা চিত্রিত:

<div my-customer name="Customer XYZ"></div>

এবং নির্দেশিকা সংজ্ঞা:

angular.module('myModule', [])
.directive('myCustomer', function() {
  return {
    restrict: 'E',
    scope: {
      customerName: '@name'
    },
    controllerAs: 'vm',
    bindToController: true,
    controller: ['$http', function($http) {
      var vm = this;

      vm.doStuff = function(pane) {
        console.log(vm.customerName);
      };
    }],
    link: function(scope, element, attrs) {
      console.log(scope.customerName);
    }
  };
});

যখন scope সম্পত্তি ব্যবহার করা হয় তখন নির্দেশটি তথাকথিত "বিচ্ছিন্ন স্কোপ" মোডে থাকে যার অর্থ এটি সরাসরি প্যারেন্ট কন্ট্রোলারের স্কোপটিতে অ্যাক্সেস করতে পারে না।

খুব সাধারণ ভাষায়, বাইন্ডিং প্রতীকগুলির অর্থ:

someObject: '=' (দ্বিমুখী ডেটা বাঁধাই)

someString: '@' (ডাবল কোঁকড়া ধনুর্বন্ধনী স্বরলিপি directly {{}} সহ প্রত্যক্ষ বা someString: '@' মাধ্যমে পেরিয়ে গেছে)

someExpression: '&' (যেমন: hideDialog() )

এই তথ্যটি কৌনিক জেএস নির্দেশিকা ডকুমেন্টেশন পৃষ্ঠায় উপস্থিত রয়েছে , যদিও পুরো পৃষ্ঠায় কিছুটা ছড়িয়ে পড়ে।

প্রতীক > সিনট্যাক্সের অংশ নয়।

যাইহোক, < কৌণিক জেএস উপাদান উপাদান বাইন্ডিংয়ের অংশ হিসাবে উপস্থিত রয়েছে এবং এর অর্থ একটি উপায় বাঁধাই।


যখন আমরা কোনও গ্রাহক নির্দেশনা তৈরি করি, তখন নির্দেশকের ব্যাপ্তি বিচ্ছিন্ন সুযোগে থাকতে পারে, এর অর্থ নির্দেশিকা নিয়ামকের সাথে কোনও সুযোগ ভাগ করে না; দিকনির্দেশক এবং নিয়ন্ত্রক উভয়েরই নিজস্ব সুযোগ রয়েছে। তবে, সম্ভাব্য তিনটি উপায়ে ডেটা নির্দেশিকার স্কোপে পৌঁছে দেওয়া যেতে পারে।

  1. @ স্ট্রিং আক্ষরিক, স্ট্রিংয়ের মান, একমুখী বাইন্ডিং ব্যবহার করে ডেটা স্ট্রিং হিসাবে পাস করা যেতে পারে।
  2. = স্ট্রিং আক্ষরিক, পাস অবজেক্ট, 2 উপায় বাইন্ডিং ব্যবহার করে ডেটা অবজেক্ট হিসাবে পাস করা যায়।
  3. ডেটা কোনও ফাংশন হিসাবে & স্ট্রিং আক্ষরিক হিসাবে প্রেরণ করা যায়, বহিরাগত ফাংশন কল করে, নির্দেশক থেকে নিয়ামককে ডেটা পাস করতে পারে।

> নথিতে নেই।

< একমুখী বাইন্ডিংয়ের জন্য।

@ বাইন্ডিং স্ট্রিং পাস করার জন্য। এই স্ট্রিংগুলি আন্তঃবিবাহিত মানগুলির জন্য {{}} এক্সপ্রেশনকে সমর্থন করে।

= বাইন্ডিং দ্বিমুখী মডেল বাইন্ডিংয়ের জন্য। অভিভাবকের স্কোপের মডেলটি নির্দেশকের বিচ্ছিন্ন সুযোগে মডেলের সাথে যুক্ত।

& বাধ্যতামূলক হ'ল কোনও নির্দেশকে আপনার নির্দেশকের স্কোপে প্রবেশ করার জন্য যাতে এটি আপনার নির্দেশের মধ্যে ডাকতে পারে।

যখন আমরা সুযোগ স্থাপন করি: নির্দেশে সত্য, কৌণিক জেএস সেই নির্দেশের জন্য একটি নতুন সুযোগ তৈরি করে। এর অর্থ নির্দেশিকার ক্ষেত্রের যে কোনও পরিবর্তন প্যারেন্ট কন্ট্রোলারে ফিরে আসে না।


< একমুখী বাঁধাই

= দ্বিমুখী বাঁধাই

& ফাংশন বাইন্ডিং

@ কেবল স্ট্রিং পাস করুন





angularjs-scope