controller
ফাংশন / বস্তু একটি বিমূর্ততা মডেল দেখুন-কন্ট্রোলার (MVC) প্রতিনিধিত্ব করে। যদিও এমভিসি সম্পর্কে নতুন করে লেখার কিছুই নেই, তবে এটি এখনও কৌণিকের সবচেয়ে উল্লেখযোগ্য অগ্রগতি: উদ্বেগকে ছোট ছোট টুকরো করে ভাগ করুন। এবং এটি হ'ল আর কিছুই নয়, সুতরাং আপনার যদি সেই Model
পরিবর্তনগুলি নিয়ে প্রতিক্রিয়া দেখাতে হয় তবে সেই কাজটি করার জন্য সঠিক ব্যক্তি ।View
Controller
link
ফাংশন সম্পর্কিত গল্পটি আলাদা, এটি এমভিসি এর পরে বিভিন্ন দৃষ্টিভঙ্গি থেকে আসে। এবং সত্যিই অপরিহার্য, একবার আমরা কোনও controller/model/view
(টেম্পলেট) এর সীমানা অতিক্রম করতে চাই ।
link
ফাংশনে যে পরামিতিগুলি প্রবেশ করা হয় তা দিয়ে শুরু করি :
function link(scope, element, attrs) {
- স্কোপ একটি কৌণিক স্কোপ অবজেক্ট।
- উপাদানটি হ'ল জেকলাইট-মোড়ক উপাদান যা এই নির্দেশের সাথে মেলে।
- এট্রেসরা হ'ল সাধারণ বৈশিষ্ট্যযুক্ত নাম এবং তাদের সম্পর্কিত মান সহ একটি বস্তু।
করা link
প্রসঙ্গ মধ্যে, আমরা উল্লেখ করা উচিত যে সব নির্দেশনা এই আরম্ভের প্রক্রিয়া পদক্ষেপের মধ্য দিয়ে যাচ্ছি: কম্পাইল , লিংক । ব্র্যাড গ্রিন এবং শ্যাম শেশেদ্রির বই অ্যাঙ্গুলার জেএস থেকে একটি নির্যাস :
সংকলন পর্ব (লিঙ্কের বোন, একটি পরিষ্কার ছবি পেতে এখানে এটি উল্লেখ করুন):
এই পর্যায়ে, কৌনিকটি টেমপ্লেটে সমস্ত নিবন্ধিত নির্দেশকে সনাক্ত করতে ডিওএমের পদচারণা করে। প্রতিটি নির্দেশাবলীর জন্য, এটি পরে নির্দেশকের নিয়মের (টেমপ্লেট, প্রতিস্থাপন, প্রতিলিপি, এবং এই জাতীয়) উপর ভিত্তি করে ডিওএম রূপান্তর করে এবং উপস্থিত থাকলে সংকলন ফাংশনটি কল করে। ফলাফলটি একটি সংকলিত টেম্পলেট ফাংশন,
লিংক ফেজ :
ভিউটিকে গতিশীল করার জন্য, কৌণিকর প্রতিটি নির্দেশের জন্য একটি লিঙ্ক ফাংশন চালায়। লিঙ্ক ফাংশনগুলি সাধারণত ডিওএম বা মডেলটিতে শ্রোতাদের তৈরি করে। এই শ্রোতা দর্শন এবং মডেলটিকে সর্বদা একত্রে রাখে।
কীভাবে এটি ব্যবহার করবেন তার একটি চমৎকার উদাহরণ link
এখানে পাওয়া যাবে: কাস্টম দিকনির্দেশনা তৈরি করা । উদাহরণটি দেখুন: একটি নির্দেশিকা তৈরি করা যা ডিওএমকে ম্যানিপুলেট করে , যা পৃষ্ঠায় একটি "তারিখ-সময়" সন্নিবেশ করে, প্রতি সেকেন্ডে সতেজ হয়।
উপরোক্ত সমৃদ্ধ উত্স থেকে কেবল একটি খুব ছোট স্নিপেট , ডিওমের সাথে প্রকৃত হেরফের দেখায়। $ টাইমআউট সার্ভিসে হুক করা ফাংশন রয়েছে এবং মেমরি ফাঁস এড়াতে এটির ডিস্ট্রাক্টর কলটিতে এটি সাফ করা হয়েছে
.directive('myCurrentTime', function($timeout, dateFilter) {
function link(scope, element, attrs) {
...
// the not MVC job must be done
function updateTime() {
element.text(dateFilter(new Date(), format)); // here we are manipulating the DOM
}
function scheduleUpdate() {
// save the timeoutId for canceling
timeoutId = $timeout(function() {
updateTime(); // update DOM
scheduleUpdate(); // schedule the next update
}, 1000);
}
element.on('$destroy', function() {
$timeout.cancel(timeoutId);
});
...
$watch
,$digest
এবং$apply
? "