මගේ $ විෂය පථය එක් පාලකයකින් තවත් පාලකයෙකුට යවන්නේ කෙසේද? $ විමෝචන සහ. Methods ක්රම මත?
App විෂය පථය ඇතුළුව ඔබගේ යෙදුමේ ධූරාවලිය තුළ ඔබට අවශ්ය ඕනෑම වස්තුවක් යැවිය හැකිය .
විකාශනය සහ විමෝචනය ක්රියා කරන ආකාරය පිළිබඳ ඉක්මන් අදහසක් මෙන්න .
පහත නෝඩ් සැලකිල්ලට ගන්න; සියල්ලම නෝඩ් 3 තුළ කූඩු කර ඇත. ඔබට මෙම අවස්ථාව ඇති විට ඔබ විකාශනය සහ විමෝචනය භාවිතා කරයි .
සටහන: මෙම උදාහරණයේ ඇති එක් එක් නෝඩයේ සංඛ්යාව අත්තනෝමතික ය; එය පහසුවෙන් අංක එක විය හැකිය; අංක දෙක; හෝ අංක 1,348 පවා. සෑම සංඛ්යාවක්ම මෙම උදාහරණය සඳහා හඳුනාගැනීමක් පමණි. මෙම උදාහරණයේ කාරණය වන්නේ කෝණික පාලක / විධානයන් කැදැල්ල පෙන්වීමයි.
3
------------
| |
----- ------
1 | 2 |
--- --- --- ---
| | | | | | | |
මෙම ගස බලන්න. පහත සඳහන් ප්රශ්නවලට ඔබ පිළිතුරු දෙන්නේ කෙසේද?
සටහන: මෙම ප්රශ්නවලට පිළිතුරු දීමට වෙනත් ක්රම තිබේ, නමුත් මෙහිදී අපි විකාශනය සහ විමෝචනය සාකච්ඡා කරමු . එසේම, පහත පෙළ කියවන විට සෑම අංකයකටම තමන්ගේම ගොනුවක් (විධානය, පාලකය) ex one.js, two.js, three.js ඇතැයි උපකල්පනය කරන්න.
නෝඩ් 1 නෝඩ් 3 ට කථා කරන්නේ කෙසේද ?
One.js ගොනුවේ
scope.$emit('messageOne', someValue(s));
Three.js ගොනුවේ - සන්නිවේදනය සඳහා අවශ්ය සියලුම ළමා නෝඩ් සඳහා ඉහළම නෝඩය.
scope.$on('messageOne', someValue(s));
නෝඩ් 2 නෝඩ් 3 ට කථා කරන්නේ කෙසේද?
ගොනුවේ two.js
scope.$emit('messageTwo', someValue(s));
Three.js ගොනුවේ - සන්නිවේදනය සඳහා අවශ්ය සියලුම ළමා නෝඩ් සඳහා ඉහළම නෝඩය.
scope.$on('messageTwo', someValue(s));
නෝඩ් 3 නෝඩ් 1 සහ / හෝ නෝඩ් 2 සමඟ කතා කරන්නේ කෙසේද?
Three.js ගොනුවේ - සන්නිවේදනය සඳහා අවශ්ය සියලුම ළමා නෝඩ් සඳහා ඉහළම නෝඩය.
scope.$broadcast('messageThree', someValue(s));
ගොනුව තුළ one.js && two.js ඔබ පණිවුඩය හෝ දෙකම අල්ලා ගැනීමට අවශ්ය කරුණු දෙකෙන් ගොනුව.
scope.$on('messageThree', someValue(s));
නෝඩ් 2 නෝඩ් 1 ට කථා කරන්නේ කෙසේද?
ගොනුවේ two.js
scope.$emit('messageTwo', someValue(s));
Three.js ගොනුවේ - සන්නිවේදනය සඳහා අවශ්ය සියලුම ළමා නෝඩ් සඳහා ඉහළම නෝඩය.
scope.$on('messageTwo', function( event, data ){
scope.$broadcast( 'messageTwo', data );
});
One.js ගොනුවේ
scope.$on('messageTwo', someValue(s));
කෙසේවෙතත්
ඔබට මේ සියලු කැදැලි ළමා නෝඩ් මේ ආකාරයට සන්නිවේදනය කිරීමට උත්සාහ කරන විට, ඔබට ඉක්මනින් $ on , $ විකාශන සහ $ විමෝචන බොහෝමයක් පෙනෙනු ඇත .
මෙන්න මම කරන්න කැමති දේ.
ඉහළම PARENT NODE හි ( 3 මේ අවස්ථාවේ ...), එය ඔබේ මව් පාලකය විය හැකිය ...
එබැවින්, file.js ගොනුවේ
scope.$on('pushChangesToAllNodes', function( event, message ){
scope.$broadcast( message.name, message.data );
});
දැන් ඕනෑම ළමා නෝඩ් එකක ඔබට අවශ්ය වන්නේ message පණිවිඩය විමෝචනය කිරීම හෝ catch on භාවිතයෙන් එය අල්ලා ගැනීම පමණි .
සටහන: සාමාන්යයෙන් විමෝචනය , $ විකාශනය හෝ $ භාවිතා නොකර එක් කැදැල්ලක කතා කිරීම පහසුය , එයින් අදහස් කරන්නේ බොහෝ විට භාවිතා වන්නේ ඔබ නෝඩ් 1 ලබා ගැනීමට උත්සාහ කරන විට හෝ නෝඩ් 2 සමඟ සන්නිවේදනය කිරීමට හෝ අනෙක් අතට.
නෝඩ් 2 නෝඩ් 1 ට කථා කරන්නේ කෙසේද?
ගොනුවේ two.js
scope.$emit('pushChangesToAllNodes', sendNewChanges());
function sendNewChanges(){ // for some event.
return { name: 'talkToOne', data: [1,2,3] };
}
Three.js ගොනුවේ - සන්නිවේදනය සඳහා අවශ්ය සියලුම ළමා නෝඩ් සඳහා ඉහළම නෝඩය.
අපි දැනටමත් මෙය හසුරුවා තිබේද?
One.js ගොනුවේ
scope.$on('talkToOne', function( event, arrayOfNumbers ){
arrayOfNumbers.forEach(function(number){
console.log(number);
});
});
ඔබට අල්ලා ගැනීමට අවශ්ය සෑම නිශ්චිත අගයක් සමඟම ඔබට තවමත් $ on භාවිතා කිරීමට අවශ්ය වනු ඇත , නමුත් දැන් අපි අල්ලාගෙන විකාශනය කරන විට මව් නෝඩ් පරතරය හරහා පණිවිඩය ලබා ගන්නේ කෙසේද යන්න ගැන කරදර නොවී ඔබට ඕනෑම නෝඩ් එකක ඔබ කැමති ඕනෑම දෙයක් නිර්මාණය කළ හැකිය. සාමාන්ය තල්ලු කිරීම චැන්ජෙස්ටෝඇල්නෝඩ්ස් .
මෙය උපකාරී වේ යැයි සිතමු ...
$rootScope
එය වළක්වා ගත හැකි විට විකාශනය / විමෝචනය සඳහා භාවිතා නොකරන්න .