এই প্রশ্নটি ইতিমধ্যে মেরে ফেলা হয়েছে, তবে অ্যাঙ্গুলারজেএস স্কোপস যে ভয়াবহ গণ্ডগোলের সাথে অন্য কেউ লড়াই করছে সে ক্ষেত্রে আমি যেভাবেই হোক এটিকে ভাগ করব। এই ইচ্ছার কভার =
, <
, @
, &
এবং ::
। সম্পূর্ণ লেখা আপ এখানে পাওয়া যাবে ।
=
দ্বিপথ বাঁধাই স্থাপন করে। পিতামাতার সম্পত্তি পরিবর্তন করার ফলে সন্তানের পরিবর্তন হতে পারে এবং এর বিপরীতে।
<
সন্তানের কাছে পিতা-মাতার এক উপায় বাঁধাই করে। পিতামাতার সম্পত্তি পরিবর্তনের ফলে সন্তানের পরিবর্তন হবে তবে সন্তানের সম্পত্তি পরিবর্তনের ফলে পিতামাতার সম্পত্তি প্রভাবিত হবে না।
@
সন্তানের সম্পত্তিতে ট্যাগ বৈশিষ্ট্যের স্ট্রিং মান নির্ধারণ করা হবে। যদি গুনটিতে কোনও অভিব্যক্তি থাকে তবে অভিব্যক্তিটি যখন কোনও স্ট্রিংয়ের মূল্যায়ন করে তখনই শিশু সম্পত্তি আপডেট হয়। উদাহরণ স্বরূপ:
<child-component description="The movie title is {{$ctrl.movie.title}}" />
bindings: {
description: '@',
}
এখানে, description
সন্তানের ক্ষেত্রের সম্পত্তিটি হ'ল অভিব্যক্তির বর্তমান মান "The movie title is {{$ctrl.movie.title}}"
, যেখানে movie
প্যারেন্ট স্কোপের কোনও অবজেক্ট।
&
কিছুটা জটিল এবং বাস্তবে এটি ব্যবহার করার মতো কোনও বাধ্য করার কারণ নেই বলে মনে হয়। এটি আপনাকে সন্তানের সুযোগ থেকে ভেরিয়েবলগুলির সাথে পরামিতিগুলি স্থিত করে প্যারেন্ট স্কোপে একটি অভিব্যক্তি মূল্যায়নের অনুমতি দেয়। একটি উদাহরণ ( প্লাঙ্ক ):
<child-component
foo = "myVar + $ctrl.parentVar + myOtherVar"
</child-component>
angular.module('heroApp').component('childComponent', {
template: "<div>{{ $ctrl.parentFoo({myVar:5, myOtherVar:'xyz'}) }}</div>",
bindings: {
parentFoo: '&foo'
}
});
প্রদত্ত parentVar=10
, অভিব্যক্তিটি parentFoo({myVar:5, myOtherVar:'xyz'})
মূল্যায়ন করবে 5 + 10 + 'xyz'
এবং উপাদানটি রেন্ডার হবে:
<div>15xyz</div>
আপনি কখন এই সংশ্লেষিত কার্যকারিতাটি ব্যবহার করতে চান? &
লোকেরা প্রায়শই পিতামাতার স্কোপগুলিতে একটি কলব্যাক ফাংশন সন্তানের স্কোপগুলিতে যেতে ব্যবহার করে। বাস্তবে, তবে, ফাংশনটি পাস করার জন্য '<' ব্যবহার করে একই প্রভাব অর্জন করা যেতে পারে, যা আরও সোজাসাপ্টা এবং প্যারামিটারগুলি পাস করার জন্য বিশ্রী কোঁকড়ানো ধনুর্বন্ধনী সিনট্যাক্স এড়ানো হয় ({myVar:5, myOtherVar:'xyz'}
)। বিবেচনা:
কলব্যাক ব্যবহার করে &
:
<child-component parent-foo="$ctrl.foo(bar)"/>
angular.module('heroApp').component('childComponent', {
template: '<button ng-click="$ctrl.parentFoo({bar:'xyz'})">Call foo in parent</button>',
bindings: {
parentFoo: '&'
}
});
কলব্যাক ব্যবহার করে <
:
<child-component parent-foo="$ctrl.foo"/>
angular.module('heroApp').component('childComponent', {
template: '<button ng-click="$ctrl.parentFoo('xyz')">Call foo in parent</button>',
bindings: {
parentFoo: '<'
}
});
নোট করুন যে অবজেক্টগুলি (এবং অ্যারেগুলি) অনুলিপি না করে সন্তানের ক্ষেত্রের রেফারেন্স দ্বারা পাস করা হয়েছে। এর অর্থ হ'ল এটি যদি একতরফা বাধ্যতামূলক হয় তবে আপনি পিতা বা মাতা এবং সন্তানের সুযোগ উভয় ক্ষেত্রে একই বস্তুর সাথে কাজ করছেন।
ক্রিয়াকলাপে বিভিন্ন উপসর্গ দেখতে, এই নিমজ্জনটি খুলুন ।
ওয়ান-টাইম বাইন্ডিং (ইনিশিয়ালাইজেশন) ব্যবহার করে
::
[সরকারী দস্তাবেজ]
অ্যাঙ্গুলারজেএস এর পরবর্তী সংস্করণগুলি এককালীন বাধ্যবাধকতা রাখার বিকল্পটি প্রবর্তন করে, যেখানে শিশু স্কোপ সম্পত্তি কেবল একবার আপডেট করা হয়। এটি পিতামাতার সম্পত্তি দেখার প্রয়োজন বাদ দিয়ে কর্মক্ষমতা উন্নত করে। সিনট্যাক্স উপরের থেকে পৃথক; এক-সময় বাধ্যতামূলক ঘোষণা করতে, আপনি উপাদান ট্যাগে::
অভিব্যক্তিটির সামনে যোগ করুন :
<child-component
tagline = "::$ctrl.tagline">
</child-component>
এটি tagline
একমুখী বা দ্বিমুখী বাইন্ডিং স্থাপন না করে সন্তানের সুযোগের মান প্রচার করবে । দ্রষ্টব্য : যদি tagline
প্রাথমিকভাবে undefined
পিতামাতার স্কোপে থাকে তবে কৌণিক এটি পরিবর্তন না হওয়া অবধি দেখবে এবং তারপরে সন্তানের সুযোগে সংশ্লিষ্ট সম্পত্তিটির এক-সময় আপডেট করবে update
সারসংক্ষেপ
সম্পত্তিটি কোনও বস্তু, অ্যারে, স্ট্রিং ইত্যাদির উপর নির্ভর করে উপসর্গগুলি কীভাবে কাজ করে তা নীচের সারণীতে দেখানো হয়েছে