මෙම ප්රශ්නය දැනටමත් පහර දී ඇත, නමුත් වෙනත් අයෙකු AngularJS විෂය පථයන්හි ඇති භයානක අවුල සමඟ පොරබදන්නේ නම් මම කෙසේ හෝ මෙය බෙදා ගනිමි. මෙම ආවරණය වනු ඇත =
, <
, @
, &
හා ::
. සම්පූර්ණ ලිවීම මෙහි සොයාගත හැකිය .
=
දෙයාකාර බන්ධනයක් ස්ථාපිත කරයි. දෙමව්පියන් තුළ ඇති දේපල වෙනස් කිරීම දරුවාගේ වෙනස් වීමට හේතු වන අතර අනෙක් අතට.
<
දෙමව්පියන්ට දරුවාට එක් ආකාරයකින් බැඳීමක් ඇති කරයි. දෙමව්පියන් තුළ ඇති දේපල වෙනස් කිරීම දරුවාගේ වෙනස් වීමට හේතු වනු ඇත, නමුත් ළමා දේපල වෙනස් කිරීම දෙමාපිය දේපළට බලපාන්නේ නැත.
@
ටැග් ගුණාංගයේ තන්තු වටිනාකම ළමා දේපල වෙත පවරනු ඇත. ගුණාංගයේ ප්රකාශනයක් තිබේ නම් , ප්රකාශනය වෙනත් නූලකට තක්සේරු කරන සෑම විටම ළමා දේපල යාවත්කාලීන වේ. උදාහරණයක් වශයෙන්:
<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: '<'
}
});
වස්තූන් (සහ අරා) පිටපත් කරනු ලබන්නේ ළමා විෂය පථයට යොමු වීමෙනි. මෙයින් අදහස් කරන්නේ එය එක්-මාර්ග බැඳීමක් වුවද, ඔබ දෙමව්පියන් හා ළමා විෂය පථය තුළ එකම වස්තුවක් සමඟ වැඩ කරන බවයි.
ක්රියාත්මක වන විවිධ උපසර්ග බැලීමට මෙය විවෘත කරන්න plunk .
එක් වරක් බන්ධනය (ආරම්භ කිරීම) භාවිතා කිරීම
::
[නිල ලියකියවිලි]
AngularJS හි පසු සංස්කරණ මඟින් එක් වරක් බන්ධනය කිරීමේ විකල්පය හඳුන්වා දෙයි, එහිදී ළමා විෂය පථය යාවත්කාලීන වන්නේ එක් වරක් පමණි. මව් දේපල නැරඹීමේ අවශ්යතාවය ඉවත් කිරීමෙන් මෙය කාර්ය සාධනය වැඩි දියුණු කරයි. වාක්ය ඛණ්ඩය ඉහළින් වෙනස් ය; එක් වරක් බැඳීමක් ප්රකාශ කිරීමට, ඔබ සංරචක ටැගයේ::
ප්රකාශනය ඉදිරිපිට එකතු කරයි :
<child-component
tagline = "::$ctrl.tagline">
</child-component>
මෙය tagline
එක් මාර්ගයක් හෝ ද්වි-මාර්ග බැඳීමක් ඇති නොකර ළමා විෂය පථයේ වටිනාකම ප්රචාරණය කරනු ඇත . සටහන : tagline
මුලින් undefined
මව් විෂය පථයේ තිබේ නම්, එය වෙනස් වන තෙක් කෝණික එය බලා පසුව ළමා විෂය පථයට අනුරූප දේපල එක් වරක් යාවත්කාලීන කරනු ඇත.
සාරාංශය
දේපල වස්තුවක්, අරාව, නූල් යනාදිය මත පදනම්ව උපසර්ග ක්රියා කරන ආකාරය පහත වගුවේ දැක්වේ.