কেউ কি সহজ কথায় ব্যাখ্যা করতে পারেন?
দস্তাবেজগুলি কিছুটা আপত্তি মনে হচ্ছে। আমি অন্যটির ওপরে কখন ব্যবহার করব তার সারমর্ম এবং বড় চিত্র পাচ্ছি না। দু'জনের বিপরীতে একটি উদাহরণ দুর্দান্ত হবে।
কেউ কি সহজ কথায় ব্যাখ্যা করতে পারেন?
দস্তাবেজগুলি কিছুটা আপত্তি মনে হচ্ছে। আমি অন্যটির ওপরে কখন ব্যবহার করব তার সারমর্ম এবং বড় চিত্র পাচ্ছি না। দু'জনের বিপরীতে একটি উদাহরণ দুর্দান্ত হবে।
উত্তর:
সংকলন ফাংশন - টেমপ্লেট ডিওএম ম্যানিপুলেশন (যেমন, টেলমেন্ট = টেমপ্লেট উপাদানগুলির ম্যানিপুলেশন) এর জন্য ব্যবহার করুন, অতএব ম্যানিপুলেশনগুলি যা নির্দেশের সাথে সম্পর্কিত টেমপ্লেটের সমস্ত ডিওএম ক্লোনগুলির ক্ষেত্রে প্রযোজ্য।
লিঙ্ক ফাংশন - ডিওএম শ্রোতাদের নিবন্ধকরণের জন্য ব্যবহার করুন (উদাহরণস্বরূপ, instance দৃষ্টিকোণের স্কোপটিতে এক্সপ্রেশনগুলি দেখুন) পাশাপাশি উদাহরণস্বরূপ ডিওএম ম্যানিপুলেশন (যেমন, আইইলেট = স্বতন্ত্র উদাহরণ উপাদানটির ম্যানিপুলেশন)।
টেমপ্লেটটি ক্লোন করার পরে এটি কার্যকর করা হয়। উদাহরণস্বরূপ, একটি <লাই এনজি-রিপিট ...> এর ভিতরে লিঙ্ক ফাংশনটি <li> টেমপ্লেট (টেলিমেন্ট) সুনির্দিষ্ট করার পরে কার্যকর করা হয় (একটি আইইলিমেন্টে) নির্দিষ্ট <li> উপাদানটির জন্য।
একটি $ ঘড়ি () উদাহরণ স্কোপ সম্পত্তি পরিবর্তনের জন্য একটি নির্দেশকে অবহিত করার অনুমতি দেয় (প্রতিটি উদাহরণের সাথে উদাহরণস্বরূপ স্কোপ যুক্ত হয়), যা নির্দেশকে ডিওএমকে একটি আপডেট দৃষ্টান্ত মূল্য রেন্ডার করতে দেয় - উদাহরণ স্কোপ থেকে সামগ্রী অনুলিপি করে by ডোম
নোট করুন যে সংকলন ফাংশন এবং / অথবা লিঙ্ক ফাংশনে ডোম ট্রান্সফর্মেশনগুলি করা যেতে পারে।
বেশিরভাগ নির্দেশাবলীর জন্য কেবল একটি লিঙ্ক ফাংশন প্রয়োজন, যেহেতু বেশিরভাগ নির্দেশিকা কেবল একটি নির্দিষ্ট ডিওএম উপাদান উদাহরণ (এবং তার উদাহরণের সুযোগ) নিয়েই ডিল করে।
কোনটি ব্যবহার করবেন তা নির্ধারণে সহায়তা করার একটি উপায়: বিবেচনা করুন যে সংকলন ফাংশনটি কোনও scope
আর্গুমেন্ট গ্রহণ করে না । (আমি উদ্দেশ্যমূলকভাবে ট্রান্সক্লোক লিঙ্কিং ফাংশন আর্গুমেন্টটিকে উপেক্ষা করছি যা একটি ট্রান্সক্লোড স্কোপ পায় - এটি খুব কমই ব্যবহৃত হয়।) সুতরাং সংকলন ফাংশনটি আপনি যা করতে চান তা করতে পারবেন না তার জন্য (উদাহরণস্বরূপ) সুযোগ দরকার - আপনি পারেন কোনও মডেল / ইনস্ট্যান্স স্কোপ বৈশিষ্ট্যগুলি দেখুন না, আপনি উদাহরণ স্কোপ তথ্য ব্যবহার করে ডিওএম চালিত করতে পারবেন না, আপনি উদাহরণ স্কোপ ইত্যাদির উপর নির্ভর করে ফাংশনগুলি কল করতে পারবেন না etc.
যাইহোক, সংকলন ফাংশন (লিঙ্ক ফাংশন মত) বৈশিষ্ট্য অ্যাক্সেস আছে। সুতরাং আপনার ডিওএম ম্যানিপুলেশনগুলির যদি উদাহরণ স্কোপের প্রয়োজন না হয় তবে আপনি একটি সংকলন ফাংশন ব্যবহার করতে পারেন। এখানে সেই নির্দেশনার উদাহরণ রয়েছে যা কেবলমাত্র এই কারণগুলির জন্য একটি সংকলন ফাংশন ব্যবহার করে। এটি বৈশিষ্ট্যগুলি পরীক্ষা করে, তবে এটির কাজটি করার জন্য উদাহরণের সুযোগের প্রয়োজন হয় না।
এখানে একটি নির্দেশকের উদাহরণ যা কেবল একটি সংকলন ফাংশন ব্যবহার করে। নির্দেশকে কেবলমাত্র টেমপ্লেট ডিওএম রূপান্তর করতে হবে, সুতরাং একটি সংকলন ফাংশন ব্যবহার করা যেতে পারে।
কোনটি ব্যবহার করবেন তা নির্ধারণে সহায়তা করার আরেকটি উপায়: আপনি যদি লিঙ্ক ফাংশনে "উপাদান" পরামিতি ব্যবহার না করেন তবে আপনার সম্ভবত কোনও লিঙ্ক ফাংশন প্রয়োজন হবে না।
যেহেতু বেশিরভাগ নির্দেশনার একটি লিঙ্ক ফাংশন থাকে, তাই আমি কোনও উদাহরণ সরবরাহ করতে যাচ্ছি না - এটি সন্ধান করা খুব সহজ হওয়া উচিত।
মনে রাখবেন যে আপনার যদি একটি সংকলন ফাংশন এবং একটি লিঙ্ক ফাংশন (বা প্রাক এবং পোস্ট লিঙ্ক ফাংশন) প্রয়োজন হয়, সংকলন ফাংশনটি অবশ্যই লিঙ্ক ফাংশন (গুলি) ফিরিয়ে আনবে কারণ 'সংকলন' বৈশিষ্ট্যটি সংজ্ঞায়িত করা থাকলে 'লিঙ্ক' বৈশিষ্ট্যটিকে উপেক্ষা করা হবে।
আরো দেখুন
if you don't use the "element" parameter in the link function, then you probably don't need a link function.
আপনার কি "এলিমেন্ট" এর পরিবর্তে "স্কোপ" মানে?
আমি এই কয়েক দিনের জন্য প্রাচীরের বিরুদ্ধে আমার মাথাটি মারলাম, এবং আমি অনুভব করছি যে আরও কিছুটা ব্যাখ্যা করার জন্য।
মূলত, ডক্সগুলি উল্লেখ করে যে বিচ্ছেদটি মূলত একটি কার্যকারিতা বৃদ্ধি enhance আমি পুনরুত্থিত করব যে সংকলন পর্বটি মূলত তখন ব্যবহৃত হয় যখন আপনাকে সাব-এলিমেন্টগুলি সংকলনের আগে ডম সংশোধন করতে হবে।
আমাদের উদ্দেশ্যে, আমি পরিভাষাটির উপর চাপ দিচ্ছি যা অন্যথায় বিভ্রান্তিকর:
সংকলক সার্ভিস (ile সংকলন) এমন কৌণিক প্রক্রিয়া যা ডিওএম প্রসেস করে এবং নির্দেশে কোডের বিভিন্ন বিট চালায়।
সংকলন ফাংশন একটি নির্দেশের মধ্যে কোডের একটি বিট, যা সংকলক সার্ভিস (ile সংকলন) দ্বারা নির্দিষ্ট সময়ে চালিত হয়।
সংকলন ফাংশন সম্পর্কে কিছু নোট:
আপনি মূল উপাদানটিকে (আপনার নির্দেশকে প্রভাবিত করে) পরিবর্তন করতে পারবেন না, যেহেতু এটি ইতিমধ্যে ডোমের বাইরের স্তর থেকে সংকলন করা হয়েছে (সংকলন সার্ভিস ইতিমধ্যে সেই উপাদানটির নির্দেশনার জন্য স্ক্যান করেছে)।
যদি আপনি (নেস্টেড) উপাদানগুলিতে অন্যান্য নির্দেশিকা যুক্ত করতে চান তবে আপনি:
সংকলনের পর্যায়ে এগুলি যুক্ত করতে হবে।
সংযোগের পর্যায়ে সংকলন পরিষেবাটি ইনজেক্ট করতে হবে এবং উপাদানগুলিকে ম্যানুয়ালি সংকলন করতে হবে। কিন্তু, দুবার কিছু সংকলন করতে সাবধান!
কীভাবে বাসা বাঁধে এবং স্পষ্টভাবে calls কাজকে সংকলন করে কল করে তা দেখতেও সহায়ক, সুতরাং আমি এটি দেখার জন্য একটি খেলার মাঠ তৈরি করেছি http://jsbin.com/imUPAMoV/1/edit এ । মূলত, এটি কেবল কনসোল.লগের পদক্ষেপগুলিতে লগ করে।
আপনি এখানে এই বিনটিতে যা দেখতে চান তার ফলাফলগুলি আমি জানিয়ে দেব। কাস্টম নির্দেশনার একটি ডোম জন্য tp এবং এসপি নীচে নীচে নেস্টেড:
<tp>
<sp>
</sp>
</tp>
কৌণিক সংকলন সার্ভিস কল করবে:
tp compile
sp compile
tp pre-link
sp pre-link
sp post-link
tp post-link
জেসবিন কোডটিতে টিপি পোস্ট-লিংক ফুনक्शनটি স্পষ্টভাবে একটি তৃতীয় নির্দেশে (আপ) সংকলন সার্ভিস কল করে, যা শেষে তিনটি পদক্ষেপ করে।
এখন, কেউ কীভাবে বিভিন্ন কাজ করার জন্য সংকলন এবং লিঙ্কটি ব্যবহার করতে পারে তা দেখানোর জন্য আমি বেশ কয়েকটি দৃশ্যের মধ্য দিয়ে চলতে চাই:
স্কেনারিও 1: ম্যাক্রো হিসাবে নির্দেশিকা
আপনি আপনার টেমপ্লেটের এমন কোনও কিছুতে গতিশীলভাবে একটি নির্দেশিকা (এনজি-শো বলুন) যুক্ত করতে চান যা আপনি কোনও বৈশিষ্ট্য থেকে উদ্ভূত করতে পারেন।
বলুন যে আপনার কাছে একটি টেম্পলেটআর্ল রয়েছে যা এতে নির্দেশ করে:
<div><span><input type="text"></span><div>
এবং আপনি একটি কাস্টম নির্দেশ চান:
<my-field model="state" name="address"></my-field>
এটি ডোমকে এতে রূপান্তরিত করে:
<div><span ng-show="state.visible.address"><input ng-model="state.fields.address" ...>
মূলত, আপনি কিছু নিয়মিত মডেল কাঠামো রেখে আপনার বয়লারপ্লেট হ্রাস করতে চান যা আপনার নির্দেশিকা ব্যাখ্যা করতে পারে। অন্য কথায়: আপনি একটি ম্যাক্রো চান।
এটি সংকলন পর্বের জন্য দুর্দান্ত ব্যবহার, যেহেতু আপনি কেবলমাত্র বৈশিষ্ট্যগুলি থেকে জানেন এমন সমস্ত বিষয়গুলিতে DOM ম্যানিপুলেশনগুলি বেস করতে পারেন base বৈশিষ্ট্যগুলি যুক্ত করতে কেবল jQuery ব্যবহার করুন:
compile: function(tele, tattr) {
var span = jQuery(tele).find('span').first();
span.attr('ng-show', tattr.model + ".visible." + tattr.name);
...
return {
pre: function() { },
post: function() {}
};
}
অপারেশনগুলির ক্রমটি হবে (আপনি এটি পূর্বে উল্লিখিত জেসবিনের মাধ্যমে দেখতে পারেন):
উপরোক্ত উদাহরণে, কোনও সংযোগের প্রয়োজন নেই, যেহেতু নির্দেশনার সমস্ত কাজ ফাংশন সংকলনে করা হয়েছিল।
যে কোনও সময়ে, নির্দেশের কোডটি অতিরিক্ত উপাদানগুলিতে চালিত করার জন্য সংকলক SERVICE জিজ্ঞাসা করতে পারে।
এর অর্থ হ'ল আপনি যদি সংকলন পরিষেবাটি ইনজেক্ট করেন আমরা কোনও লিঙ্ক ফাংশনে ঠিক একই জিনিসটি করতে পারি:
directive('d', function($compile) {
return {
// REMEMBER, link is called AFTER nested elements have been compiled and linked!
link: function(scope, iele, iattr) {
var span = jQuery(iele).find('span').first();
span.attr('ng-show', iattr.model + ".visible." + iattr.name);
// CAREFUL! If span had directives on it before
// you will cause them to be processed again:
$compile(span)(scope);
}
});
আপনি যদি নিশ্চিত হন যে সার্ভিসটি সংকলনের জন্য আপনি যে উপাদানগুলি পাঠাচ্ছেন সেগুলি মূলত নির্দেশ-মুক্ত ছিল (উদাহরণস্বরূপ এগুলি আপনার সংজ্ঞায়িত টেম্পলেট থেকে এসেছে বা আপনি কেবল এগুলি কৌনিক.এলিমেন্ট () দিয়ে তৈরি করেছেন, তবে পরিণামের ফলাফলটি বেশ বেশি আগের মতোই (যদিও আপনি কিছু কাজের পুনরাবৃত্তি করতে পারেন)। যাইহোক, যদি উপাদানটির অন্যান্য নির্দেশ থাকে তবে আপনি কেবল এগুলি আবার প্রক্রিয়াভুক্ত করে দিয়েছিলেন, যা সমস্ত ধরণের অনিয়মিত আচরণের কারণ হতে পারে (যেমন ঘটনা এবং ঘড়ির দ্বৈত-নিবন্ধকরণ)।
সুতরাং, সংকলন পর্বটি ম্যাক্রো-শৈলীর কাজের জন্য আরও ভাল পছন্দ।
স্কেনারিও 2: স্কোপ ডেটার মাধ্যমে ডোম কনফিগারেশন
এটি উপরের উদাহরণ থেকে অনুসরণ করে। মনে করুন DOM কে চালানোর সময় আপনার সুযোগের অ্যাক্সেস দরকার। ঠিক আছে, সেক্ষেত্রে সংকলন বিভাগটি আপনার পক্ষে অকেজো, যেহেতু স্কোপ উপলব্ধ হওয়ার আগে এটি ঘটে।
সুতরাং, আসুন আমরা বলি যে আপনি বৈধতা সহ একটি ইনপুট ফুটাতে চান, তবে আপনি একটি সার্ভার-সাইড ওআরএম ক্লাস (ডিআরওয়াই) থেকে আপনার বৈধতাগুলি রফতানি করতে চান এবং সেগুলিকে স্বতঃ-প্রয়োগ করতে এবং সেই বৈধতার জন্য যথাযথ ক্লায়েন্ট-সাইড ইউআই তৈরি করতে চান।
আপনার মডেল চাপ দিতে পারে:
scope.metadata = {
validations: {
address: [ {
pattern: '^[0-9]',
message: "Address must begin with a number"
},
{ maxlength: 100,
message: "Address too long"
} ]
}
};
scope.state = {
address: '123 Fern Dr'
};
এবং আপনি একটি নির্দেশিকা চাইতে পারেন:
<form name="theForm">
<my-field model="state" metadata="metadata" name="address">
</form>
বিভিন্ন বৈধতা ত্রুটি দেখাতে সঠিক দিকনির্দেশ এবং ডিভগুলি স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত করতে:
<form name="theForm">
<div>
<input ng-model="state.address" type="text">
<div ng-show="theForm.address.$error.pattern">Address must begin with a number</input>
...
এই ক্ষেত্রে আপনার অবশ্যই স্পেসে অ্যাক্সেসের প্রয়োজন (যেহেতু এটিই আপনার বৈধতাগুলি সংরক্ষণ করা হয়) এবং আবার সংযোজনগুলি ম্যানুয়ালি সংকলন করতে হবে, আবার জিনিসগুলি দ্বি-সংকলন না করার বিষয়ে সতর্কতা অবলম্বন করা উচিত। (পার্শ্ব নোট হিসাবে, আপনাকে ধারণকৃত ফর্ম ট্যাগের উপর একটি নাম স্থাপন করতে হবে (আমি এখানে ফর্ম অনুমান করছি), এবং এটি আইলেমেন্ট.প্যারেন্ট () নিয়ন্ত্রণকারী ('ফর্ম') এর লিঙ্কে অ্যাক্সেস করতে পারতাম could নাম)) ।
এই ক্ষেত্রে একটি সংকলন ফাংশন লেখার কোন মানে নেই। লিঙ্কটি আপনি যা চান তা হ'ল। পদক্ষেপগুলি হবে:
তাই ভালো:
angular.module('app', []).
directive('my-field', function($compile) {
return {
link: function(scope, iele, iattr) {
// jquery additions via attr()
// remove ng attr from top-level iele (to avoid duplicate processing)
$compile(iele)(scope); // will pick up additions
}
};
});
আপনি যখন অবশ্যই শীর্ষ স্তরের উপাদানটি পুনরায় সংকলন করেন তখন আপনি অবশ্যই এনজি ডাইরেক্টিভের সদৃশ প্রক্রিয়া সম্পর্কে উদ্বিগ্ন হওয়া এড়াতে নেস্টেড উপাদানগুলিকে একে একে সংকলন করতে পারেন।
এই দৃশ্যের একটি চূড়ান্ত নোট: আমি বুঝিয়েছি আপনি কোনও সার্ভার থেকে বৈধতার সংজ্ঞাটি চাপ দিচ্ছেন, এবং আমার উদাহরণে আমি এগুলি ইতিমধ্যে সুযোগ হিসাবে ডেটা হিসাবে দেখিয়েছি। আমি একজন পাঠককে কীভাবে কোনও তথ্যকে একটি REST এপিআই (ইঙ্গিত: স্থগিত সংকলন) থেকে টানা প্রয়োজনের সাথে মোকাবিলা করতে পারে তা নির্ধারণের জন্য অনুশীলন হিসাবে রেখেছি।
স্কেনারিও 3: লিঙ্কের মাধ্যমে দ্বিমুখী ডেটা বাঁধাই
অবশ্যই লিঙ্কটির সর্বাধিক সাধারণ ব্যবহার হ'ল / প্রয়োগের মাধ্যমে দ্বি-মুখী ডেটা বাঁধাই কেবল simply বেশিরভাগ নির্দেশিকা এই বিভাগে আসে, সুতরাং এটি অন্যত্র পর্যাপ্তভাবে আচ্ছাদিত।
সংকলনকারী
সংকলক একটি কৌণিক পরিষেবা যা গুণাবলীর সন্ধানে ডিওএমকে অনুসরণ করে। সংকলন প্রক্রিয়া দুটি পর্যায়ে ঘটে।
সংকলন: ডিওএমকে অতিক্রম করুন এবং সমস্ত নির্দেশিকা সংগ্রহ করুন। ফলাফল একটি সংযোগ ফাংশন।
লিঙ্ক: দিকনির্দেশগুলি একটি সুযোগের সাথে একত্রিত করুন এবং একটি লাইভ ভিউ উত্পাদন করুন। স্কোপ মডেলের যে কোনও পরিবর্তন দৃশ্যতে প্রতিফলিত হয় এবং দৃশ্যের সাথে যে কোনও ব্যবহারকারীর ইন্টারঅ্যাকশনগুলি স্কোপ মডেলে প্রতিফলিত হয়। সুযোগের মডেলটিকে সত্যের একক উত্স বানানো।
ng-repeat
সংগ্রহের প্রতিটি আইটেমের জন্য কিছু নির্দেশনা যেমন ক্লোন ডোম উপাদান once একটি সংকলন এবং লিঙ্ক ফেজ থাকার ফলে কর্মক্ষমতা উন্নত হয় যেহেতু ক্লোনযুক্ত টেম্পলেটটি কেবল একবারই সংকলন করা প্রয়োজন, এবং তারপরে প্রতিটি ক্লোন উদাহরণের জন্য একবার সংযুক্ত করা দরকার।
সুতরাং কমপক্ষে কিছু ক্ষেত্রে, দুটি স্তর দুটি অপটিমাইজেশন হিসাবে পৃথকভাবে বিদ্যমান।
আপনি যদি ডিওএম রূপান্তর করতে চলেছেন তবে তা হওয়া উচিত
compile
। আপনি যদি এমন কিছু বৈশিষ্ট্য যুক্ত করতে চান যা আচরণের পরিবর্তনগুলি হয় তবে এটি হওয়া উচিতlink
।
DOM
রূপান্তর করতে চলেছেন , এমনটি হওয়া উচিত compile
যদি আপনি কিছু বৈশিষ্ট্য যুক্ত করতে চান তবে আচরণ পরিবর্তন, এটি হওয়া উচিত link
।
এটি মিসকোর দিকনির্দেশনায় আলাপ থেকে। http://youtu.be/WqmeI5fZcho?t=16m23s
সংকলক ফাংশনটিকে সেই টেম্পলেট হিসাবে কাজ করে যা টেম্পলেটটিতে কাজ করে এবং টেমপ্লেটটি নিজেই পরিবর্তিত করার অনুমতি দেয় এমন জিনিস হিসাবে উদাহরণস্বরূপ, এটিতে কোনও শ্রেণি যুক্ত করা বা এর মতো কিছু। তবে এটি লিঙ্কিং ফাংশন যা আসলে দুটোকে এক সাথে বাঁধাইয়ের কাজটি করে কারণ লিঙ্কিং ফাংশনটির সুযোগের অ্যাক্সেস রয়েছে এবং এটি লিঙ্কিং ফাংশন যা নির্দিষ্ট টেমপ্লেটের প্রতিটি ইনস্ট্যান্টেশনের জন্য একবার কার্যকর করে। সুতরাং কেবল এক ধরণের জিনিসগুলি আপনি কম্পাইল ফাংশনের ভিতরে রাখতে পারেন এমন জিনিসগুলি যা সমস্ত দৃষ্টান্তের মধ্যে সাধারণ are
থ্রেড থেকে একটু দেরি। তবে, ভবিষ্যতের পাঠকদের সুবিধার জন্য:
আমি নীচের ভিডিওটি জুড়ে এসেছি যা একটি খুব দুর্দান্ত ফ্যাশনে কৌনিক জেএসে সংকলন এবং লিঙ্কটি ব্যাখ্যা করে:
https://www.youtube.com/watch?v=bjFqSyddCeA
এখানে সমস্ত সামগ্রীতে অনুলিপি / টাইপ করা ভাল লাগবে না। আমি ভিডিও থেকে বেশ কয়েকটি স্ক্রিনশট নিয়েছি, যা সংকলন এবং লিঙ্ক পর্যায়ের প্রতিটি স্তরের বর্ণনা দেয়:
দ্বিতীয় স্ক্রিনশটটি কিছুটা বিভ্রান্তিকর। তবে, আমরা যদি পদক্ষেপের নম্বর অনুসরণ করি তবে এটি বেশ সোজা এগিয়ে।
প্রথম চক্র: "সংকলন" প্রথমে সমস্ত নির্দেশাবলীর উপর সম্পাদিত হয়।
দ্বিতীয় চক্র: "কন্ট্রোলার" এবং "প্রাক লিঙ্ক" সম্পাদিত হয় (ঠিক একের পর এক) তৃতীয় চক্র: "পোস্ট-লিংক" বিপরীত ক্রমে সঞ্চালিত হয় (অন্তঃস্থ থেকে শুরু করে)
নীচে কোডটি দেওয়া হয়েছে, যা উপরেরটি প্রদর্শন করে:
var অ্যাপ্লিকেশন = কৌণিক.মডিউল ('অ্যাপ', []); app.controller ('msg', ['$ সুযোগ', ফাংশন ($ সুযোগ) { }]); app.directive ('বার্তা', ফাংশন (p ইন্টারপোল্ট) { রিটার্ন { সংকলন: ফাংশন (টিলেট, টি্যাট্রিবিউটস) { কনসোল.লগ (tAttributes.text + "- সংকলন .."); ফিরে প্রাক: ফাংশন (স্কোপ, আইইলেমেন্ট, আইএন্ট্রিবিউটস, কন্ট্রোলার) { কনসোল.লগ (iAttributes.text + "-In প্রাক .."); }, পোস্ট: ফাংশন (স্কোপ, আইইলেমেন্ট, আইএন্ট্রিবিউটস, কন্ট্রোলার) { কনসোল.লগ (iAttributes.text + "- পোস্টে .."); } } }, নিয়ামক: ফাংশন ($ সুযোগ, $ উপাদান, $ অনুপ্রবেশকারী) কনসোল.লগ (rs attrs.text + "-নিয়ন্ত্রক .."); }, } });
<body ng-app="app">
<div ng-controller="msg">
<div message text="first">
<div message text="..second">
<div message text="....third">
</div>
</div>
</div>
</div>
হালনাগাদ:
একই ভিডিওর অংশ 2 এখানে উপলভ্য: https://www.youtube.com/watch?v=1M3LZ1cu7rw ভিডিওটি অ্যাঙ্গুলার জেএসের সংকলন এবং লিঙ্ক প্রক্রিয়া চলাকালীন কিভাবে ডিওএম সংশোধন করতে হবে এবং ইভেন্টগুলি পরিচালনা করতে হবে তার আরও একটি সহজ উদাহরণে ব্যাখ্যা করেছে example ।
compile
এবং post
কোনও ডিওএম সংশোধন করার আগে এটি template
কোনও বিক্রেতার নির্দেশিকা থেকে কিছু অংশে সংশোধন করা হয় ।
দুটি পর্যায়: সংকলন এবং লিঙ্ক
কম্পাইল:
দিকনির্দেশনা (উপাদান / বৈশিষ্ট্য / শ্রেণি / মন্তব্য) সন্ধানের জন্য ডিওএম ট্রিটিকে অতিক্রম করুন। নির্দেশের প্রতিটি সংকলন এর টেমপ্লেটটি সংশোধন করতে পারে, বা এর সামগ্রীগুলি এখনও সংকলন করে না। একবার নির্দেশের সাথে মিলে গেলে, এটি একটি লিঙ্কিং ফাংশন দেয়, যা পরবর্তী পর্যায়ে উপাদানগুলিকে একসাথে যুক্ত করতে ব্যবহৃত হয়। সংকলন পর্বের শেষে, আমাদের কাছে সংকলিত নির্দেশাবলীর তালিকা এবং তাদের সম্পর্কিত লিঙ্কিংয়ের কার্যকারিতা রয়েছে।
লিঙ্ক:
যখন কোনও উপাদান সংযুক্ত থাকে, DOM গাছের শাখা পয়েন্টে DOM গাছটি ভেঙে যায় এবং বিষয়বস্তুগুলি টেমপ্লেটের সংকলিত (এবং সংযুক্ত) উদাহরণ দ্বারা প্রতিস্থাপন করা হয়। আসল বাস্তুচ্যুত সামগ্রীটি হয় ফেলে দেওয়া হয়, বা ট্রান্সক্লুশনের ক্ষেত্রে টেমপ্লেটে আবার লিঙ্কযুক্ত। প্রতিস্থাপনের সাথে, দুটি টুকরা আবার একসাথে যুক্ত হয়েছে (টেমপ্লেট টুকরোটি মাঝখানে থাকায় একটি চেইনের মতো ধরণের)। লিঙ্ক ফাংশনটি যখন ডাকা হয়, তখন টেমপ্লেটটি ইতিমধ্যে একটি স্কোপের সাথে আবদ্ধ হয়ে যায় এবং উপাদানটির শিশু হিসাবে যুক্ত হয়। লিঙ্ক ফাংশনটি হ'ল ডিওএমকে আরও চালিত করার এবং পরিবর্তন শ্রোতাদের সেটআপ করার।
এই প্রশ্নটি পুরনো আমি সংক্ষিপ্ত সংক্ষিপ্তসার তৈরি করতে চাই যা সহায়তা করতে পারে: