কোনও নির্দেশক নির্ধারণের সময় 'নিয়ামক', 'লিঙ্ক' এবং 'সংকলন' ফাংশনের মধ্যে পার্থক্য


393

কিছু জায়গাগুলি নিয়ন্ত্রক ফাংশনটিকে নির্দেশিক যুক্তির জন্য ব্যবহার করে এবং অন্যরা লিঙ্কটি ব্যবহার করে বলে মনে হয়। কৌণিক হোমপেজে থাকা ট্যাবগুলির উদাহরণগুলির জন্য একটির জন্য নিয়ামক এবং অন্য নির্দেশনার জন্য লিঙ্ক ব্যবহার করা হয়। এই দুটির মধ্যে পার্থক্য কী?


উত্তর:


635

আমি আপনার প্রশ্নটি কিছুটা প্রসারিত করব এবং সংকলনের কাজটিও অন্তর্ভুক্ত করব।

  • সংকলন ফাংশন - টেমপ্লেট ডিওএম ম্যানিপুলেশন (যেমন, টেলমেন্ট = টেমপ্লেট উপাদানগুলির ম্যানিপুলেশন) এর জন্য ব্যবহার করুন, অতএব ম্যানিপুলেশনগুলি যা নির্দেশের সাথে সম্পর্কিত টেমপ্লেটের সমস্ত ডিওএম ক্লোনগুলির ক্ষেত্রে প্রযোজ্য। (যদি আপনারও কোনও লিঙ্ক ফাংশন প্রয়োজন হয় (বা প্রাক এবং পোস্ট লিঙ্ক ফাংশন)), এবং আপনি একটি সংকলন ফাংশন সংজ্ঞায়িত করেছেন, সংকলন ফাংশনটি অবশ্যই লিঙ্ক ফাংশন (গুলি) ফিরিয়ে দিতে হবে কারণ বৈশিষ্ট্যটি সংজ্ঞায়িত 'link'করা থাকলে 'compile'অ্যাট্রিবিউটটিকে উপেক্ষা করা হবে ))

  • লিঙ্ক ফাংশন - সাধারণত শ্রোতাদের কলব্যাকগুলি নিবন্ধকরণ করার জন্য ব্যবহার করুন (অর্থাত্ $watchস্কোপটিতে প্রকাশ) পাশাপাশি ডিওএম আপডেট করার জন্য (যেমন, আইইলেমেন্ট = স্বতন্ত্র উদাহরণ উপাদানটির ম্যানিপুলেশন)। টেমপ্লেটটি ক্লোন করার পরে এটি কার্যকর করা হয়। উদাহরণস্বরূপ, একটি এর ভিতরে <li ng-repeat...>, লিংক ফাংশনটি <li>নির্দিষ্ট <li>উপাদানটির জন্য টেমপ্লেট (টেলিমেন্ট) ক্লোন করার পরে (আইইলেমেন্টে) কার্যকর করা হয় । এ $watchস্কোপ প্রপার্টি পরিবর্তন সম্পর্কে একটি নির্দেশকে বিজ্ঞপ্তি দেওয়ার অনুমতি দেয় (প্রতিটি স্কোরের সাথে একটি স্কোপ যুক্ত থাকে), যা নির্দেশটি ডিওএমকে একটি আপডেট দৃষ্টান্ত মূল্য রেন্ডার করতে দেয়।

  • নিয়ামক ফাংশন - যখন অন্য নির্দেশকের এই নির্দেশের সাথে ইন্টারঅ্যাক্ট করার প্রয়োজন হয় তখন অবশ্যই তা ব্যবহার করা উচিত। উদাহরণস্বরূপ, AngularJS হোম পৃষ্ঠায়, ফলক নির্দেশকে ট্যাব নির্দেশিকা দ্বারা পরিচালিত স্কোপটিতে নিজেকে যুক্ত করা প্রয়োজন, সুতরাং ট্যাব নির্দেশকে একটি নিয়ামক পদ্ধতি (থিংক এপিআই) সংজ্ঞায়িত করতে হবে যা ফলক নির্দেশিকা অ্যাক্সেস / কল করতে পারে।

    ট্যাবগুলি এবং ফলক নির্দেশিকাগুলির আরও গভীরভাবে ব্যাখ্যা করার জন্য এবং কেন ট্যাব নির্দেশাবলী তার নিয়ামকটিতে this(পরিবর্তে $scope) ব্যবহার করে কোনও ফাংশন তৈরি করে, দয়া করে অ্যাংুলারজেএস নিয়ন্ত্রণকারীগুলিতে 'এই' বনাম $ সুযোগটি দেখুন

সাধারণভাবে, আপনি $watchesনির্দেশাবলী নিয়ন্ত্রণকারী বা লিঙ্ক ফাংশন উভয় মধ্যে পদ্ধতি ইত্যাদি স্থাপন করতে পারেন । কন্ট্রোলারটি প্রথমে চালিত হবে, যা কখনও কখনও গুরুত্বপূর্ণ হয় ( সিটিআরএল এবং লিঙ্ক ফাংশন দুটি নেস্টেট ডাইরেক্টিভ দিয়ে চালিত হলে লগ হয় এমন এই ঝাঁকুনিটি দেখুন )। জোশ একটি মন্তব্যে যেমন উল্লেখ করেছেন , আপনি বাকী ফ্রেমওয়ার্কের সাথে সামঞ্জস্য রেখে কেবল একটি নিয়ামকের ভিতরে স্কোপ-ম্যানিপুলেশন ফাংশন রাখতে চাইতে পারেন।


131
এই ব্যাখ্যাটি মূল
অ্যাংুলারজেএস ডক্সে

7
এটি একটি তথ্যবহুল উত্তর তবে আমি মনে করি এটি পড়া কঠিন। সম্ভবত আরও বিরামচিহ্ন এবং আরও ছোট বাক্য সাহায্য করতে পারে। সামগ্রিকভাবে আমি উত্তরের জন্য কৃতজ্ঞ।
মার্টি কর্টেজ

Comp সংকলক একটি 'সংকলন' বৈশিষ্ট্যের উপস্থিতিতে 'লিঙ্ক' বৈশিষ্ট্যটিকে উপেক্ষা করে। তবে 'নিয়ামক' বৈশিষ্ট্যের উপস্থিতি সম্পর্কে কী? 'নিয়ামক' কি সংকলককে উভয়ই 'লিঙ্ক' এবং 'সংকলন' বৈশিষ্ট্যগুলিকে উপেক্ষা করতে বাধ্য করে? 'কন্ট্রোলার' এর সাথে 'কমপাইল' ব্যবহার করা কি সম্ভব এবং / অথবা পরামর্শ দেওয়া যায়?
কার্ল জি

1
@ কার্লজি, একটি নিয়ামক বৈশিষ্ট্যের উপস্থিতি লিঙ্কটি এবং সংকলনের সাথে সংকলক $ সংকলকটিতে কোনও প্রভাব ফেলেনি। আপনি সংকলন এবং নিয়ামক ব্যবহার করতে পারেন।
রাজকক

1
"ডোম শ্রোতা" নয় "(অর্থাত্ $ স্কোপে এক্সপ্রেশনগুলি দেখুন)"। একটি যেমন DOM এর মতো ইভেন্টগুলির জন্য শোনে mouseover, অন্যটি সম্পত্তি পরিবর্তনের সুযোগের জন্য। বড় পার্থক্য.
দিমিত্রি জইতসেভ

56

মার্কের উত্তরের পরিপূরক হিসাবে, সংকলন ফাংশনটিতে সুযোগের অ্যাক্সেস নেই তবে লিঙ্ক ফাংশনটি রয়েছে।

আমি সত্যিই এই ভিডিওটি সুপারিশ করছি; মিসকো হেভির (অ্যাঙ্গুলারজেএস এর জনক) দ্বারা নির্দেশনা রচনা , যেখানে তিনি পার্থক্য এবং কিছু কৌশল বর্ণনা করেছেন। ( ভিডিওতে 14:41 চিহ্নে সংকলন ফাংশন এবং লিঙ্ক ফাংশনের মধ্যে পার্থক্য )।


3
ভিডিওর লিঙ্কটির জন্য +1। এটা খুব তথ্যপূর্ণ।
রব কিয়েল্টি


35
  1. সংকলনের আগে চলমান কোড: ব্যবহার করুন নিয়ামক
  2. সংকলনের পরে চলমান কোড: লিংকটি ব্যবহার করুন

কৌণিক কনভেনশন: কন্ট্রোলারে বিজনেস লজিক এবং লিঙ্কে DOM ম্যানিপুলেশন লিখুন।

এগুলি ছাড়াও আপনি অন্য নির্দেশকের লিঙ্ক ফাংশন থেকে একটি নিয়ামক ফাংশন কল করতে পারেন For উদাহরণস্বরূপ আপনার কাছে 3 টি কাস্টম নির্দেশনা রয়েছে

<animal>
<panther>
<leopard></leopard>
</panther> 
</animal>

এবং আপনি "চিতাবাঘ" নির্দেশের ভিতরে থেকে প্রাণীতে অ্যাক্সেস করতে চান।

আন্তঃনির্দেশক যোগাযোগের বিষয়ে জানতে http://egghead.io/lessons/angularjs-directive-communication সহায়ক হবে


18
"সংকলনের আগে চলমান কোড: নিয়ামক ব্যবহার করুন"। এটি ভুল; compileসর্বদা আগে মৃত্যুদন্ড কার্যকর করা হবে controller
ইজাকি

আপনি (কমপক্ষে সোজা উপায়ে নয়) আপনার চিতাবাঘের নির্দেশ থেকে প্রাণীটিতে প্রবেশ করতে সক্ষম হবেন না। শিশু নির্দেশিকা পিতামাতার নির্দেশে নিয়ামক পদ্ধতিগুলি অ্যাক্সেস করতে পারে তবে ভাইবাল নির্দেশাবলী (উপরের উদাহরণের মতো) একে অপরের নিয়ামককে কল করতে পারে না।
বেনিয়ামিন হোয়াইট

2
চিতাবাঘ কি আসলেই এক ধরণের ছত্রভঙ্গ? এছাড়াও, সাইড নোটে ... আপনার কোনও লিঙ্ক থাকতে পারে - এবং - কোনও নির্দেশক একটি নিয়ামক?
কোডি

1
হ্যাঁ চিতা / জাগুয়াররা প্যান্থার। এবং হ্যাঁ নির্দেশের মধ্যে আপনার লিঙ্ক এবং নিয়ামক রয়েছে।
রাহুল

1
কৌণিক বিকাশকারী গাইড থেকে: "সর্বোত্তম অনুশীলন: আপনি যখন অন্য নির্দেশিকায় কোনও এপিআই প্রকাশ করতে চান তখন নিয়ন্ত্রণকারী ব্যবহার করুন Otherwise নইলে লিঙ্কটি ব্যবহার করুন" "
মার্টিন ভ্যান ড্রিল

6

সংকলন ফাংশন -

  1. নিয়ামক এবং লিঙ্ক ফাংশন আগে বলা হয়।
  2. সংকলন ফাংশনে, আপনার কাছে মূল টেমপ্লেট ডিওএম রয়েছে যাতে অ্যাংুলারজেএস এর উদাহরণ তৈরি করার আগে এবং একটি সুযোগ তৈরি করার আগে আপনি মূল ডিওমে পরিবর্তন করতে পারেন you
  3. এনজি-পুনরাবৃত্তি নিখুঁত উদাহরণ - আসল সিনট্যাক্স হ'ল টেম্পলেট উপাদান, এইচটিএমএলে পুনরাবৃত্তি উপাদানগুলি উদাহরণস্বরূপ
  4. একাধিক উপাদান দৃষ্টান্ত এবং শুধুমাত্র একটি টেম্পলেট উপাদান থাকতে পারে
  5. ব্যাপ্তি এখনও পাওয়া যায় না
  6. সংকলন ফাংশন ফাংশন এবং অবজেক্ট ফিরে আসতে পারে
  7. একটি (পোস্ট-লিংক) ফাংশন ফিরিয়ে দেওয়া - সংকলন ফাংশনটি ফাঁকা থাকলে কনফিগার অবজেক্টের লিংক বৈশিষ্ট্যের মাধ্যমে লিঙ্কিং ফাংশনটি নিবন্ধকরণের সমতুল্য।
  8. প্রাক এবং পোস্ট বৈশিষ্ট্যের মাধ্যমে নিবন্ধিত ফাংশন (গুলি) দিয়ে কোনও বস্তু ফিরিয়ে দেওয়া - লিঙ্কিংয়ের সময় যখন কোনও লিঙ্কিং ফাংশন ডাকা উচিত তখন আপনাকে নিয়ন্ত্রণ করতে দেয়। নীচে নীচে প্রাক লিঙ্কিং এবং লিঙ্ক-সম্পর্কিত ফাংশন সম্পর্কিত তথ্য দেখুন।

বাক্য গঠন

function compile(tElement, tAttrs, transclude) { ... }

নিয়ামক

  1. সংকলন ফাংশন পরে বলা হয়
  2. সুযোগ এখানে পাওয়া যায়
  3. অন্যান্য নির্দেশাবলী দ্বারা অ্যাক্সেস করা যেতে পারে (গুণাবলী প্রয়োজন দেখুন)

প্রাক লিঙ্ক

  1. লিঙ্ক ফাংশনটি ডিওএম শ্রোতাদের নিবন্ধনের পাশাপাশি ডিওএম আপডেট করার জন্য দায়ী। টেমপ্লেটটি ক্লোন করার পরে এটি কার্যকর করা হয়। এখানেই বেশিরভাগ নির্দেশিক যুক্তি যুক্ত করা হবে।

  2. আপনি কৌণিক.এলিমেন্ট ব্যবহার করে নিয়ামকটিতে ডোম আপডেট করতে পারেন তবে উপাদানটি লিঙ্ক ফাংশনে সরবরাহ করা হওয়ায় এটি প্রস্তাবিত নয় this

  3. প্রাক-লিঙ্ক ফাংশনটি যুক্তি প্রয়োগ করতে ব্যবহার করা হয় যা কৌণিক জেএস ইতিমধ্যে শিশু উপাদানগুলি সংকলন করেছে তবে শিশু উপাদানটির কোনও পোস্টের লিঙ্কের আগে ডাকা হয়েছিল

পোস্ট লিংক

  1. যে নির্দেশটিতে কেবল লিঙ্ক ফাংশন রয়েছে, কৌণিক কার্যটি পোস্ট লিঙ্ক হিসাবে বিবেচনা করে

  2. সংকলন, নিয়ন্ত্রণকারী এবং প্রাক-লিঙ্ক ফানসিটনের পরে পোস্টটি কার্যকর করা হবে, সুতরাং আপনার নির্দেশক যুক্তি যুক্ত করার জন্য এটিকে নিরাপদ এবং ডিফল্ট স্থান হিসাবে বিবেচনা করা হয়

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