Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
AngularJS Ö¸Áîʵ¼ùÖ¸ÄÏ£¨Ò»£©
 
À´Ô´£º²®ÀÖÔÚÏß ·¢²¼ÓÚ 2017-4-05
  1583  次浏览      27
 

Ö¸ÁDirectives£©ÊÇËùÓÐAngularJSÓ¦ÓÃ×îÖØÒªµÄ²¿·Ö¡£¾¡¹ÜAngularJSÒѾ­ÌṩÁ˷dz£·á¸»µÄÖ¸Áµ«»¹ÊǾ­³£ÐèÒª´´½¨Ó¦ÓÃÌØ¶¨µÄÖ¸Áî¡£ÕâÆª½Ì³Ì»áΪÄã½²ÊöÈçºÎ×Ô¶¨ÒåÖ¸ÁÒÔ¼°½éÉÜÈçºÎÔÚʵ¼ÊÏîÄ¿ÖÐʹÓá£ÔÚÕâÆªÎÄÕµÄ×îºó£¨µÚ¶þ²¿·Ö£©£¬ÎÒ»áÖ¸µ¼ÄãÈçºÎʹÓÃAngularÖ¸ÁîÀ´´´½¨Ò»¸ö¼òµ¥µÄ¼Çʱ¾Ó¦Óá£

¸ÅÊö

Ò»¸öÖ¸ÁîÓÃÀ´ÒýÈëеÄHTMLÓï·¨¡£Ö¸ÁîÊÇDOMÔªËØÉϵıê¼Ç£¬Ê¹ÔªËØÓµÓÐÌØ¶¨µÄÐÐΪ¡£¾ÙÀýÀ´Ëµ£¬¾²Ì¬µÄHTML²»ÖªµÀÈçºÎÀ´´´½¨ºÍÕ¹ÏÖÒ»¸öÈÕÆÚÑ¡ÔñÆ÷¿Ø¼þ¡£ÈÃHTMLÄÜʶ±ðÕâ¸öÓï·¨£¬ÎÒÃÇÐèҪʹÓÃÖ¸Áî¡£Ö¸Áîͨ¹ýijÖÖ·½·¨À´´´½¨Ò»¸öÄܹ»Ö§³ÖÈÕÆÚÑ¡ÔñµÄÔªËØ¡£ÎÒÃÇ»áÑ­Ðò½¥½øµØ½éÉÜÕâÊÇÈçºÎʵÏֵġ£ Èç¹ûÄãд¹ýAngularJSµÄÓ¦Óã¬ÄÇôÄãÒ»¶¨ÒѾ­Ê¹ÓùýÖ¸Á²»¹ÜÄãÓÐûÓÐÒâʶµ½¡£Äã¿Ï¶¨ÒѾ­Óùý¼òµ¥µÄÖ¸Á±ÈÈç ng-mode, ng-repeat, ng-showµÈ¡£ÕâЩָÁî¶¼¸³ÓèDOMÔªËØÌØ¶¨µÄÐÐΪ¡£ÀýÈ磬ng-repeat ÖØ¸´Ìض¨µÄÔªËØ£¬ng-show ÓÐÌõ¼þµØÏÔʾһ¸öÔªËØ¡£Èç¹ûÄãÏëÈÃÒ»¸öÔªËØÖ§³ÖÍÏ×§£¬ÄãÒ²ÐèÒª´´½¨Ò»¸öÖ¸ÁîÀ´ÊµÏÖËü¡£Ö¸Áî±³ºó»ù±¾µÄÏë·¨ºÜ¼òµ¥¡£Ëüͨ¹ý¶ÔÔªËØ°ó¶¨Ê¼þ¼àÌý»òÕ߸ıäDOM¶øÊ¹HTMLÓµÓÐÕæÊµµÄ½»»¥ÐÔ¡£

jQueryÊÓ½Ç

ÏëÏóÒ»ÏÂʹÓÃjQueryÈçºÎ´´½¨Ò»¸öÈÕÆÚÑ¡ÔñÆ÷¡£Ê×ÏÈ£¬ÎÒÃÇÔÚHTMLÖÐÌí¼ÓÒ»¸öÆÕͨµÄÊäÈë¿ò£¬È»ºóͨ¹ýjQueryµ÷Óà $(element).dataPicker() À´½«Ëüת±ä³ÉÒ»¸öÈÕÆÚÑ¡ÔñÆ÷¡£µ«ÊÇ£¬×ÐϸÏëһϡ£µ±Ò»¸öÉè¼ÆÈËÔ±¹ýÀ´¼ì²éHTML±ê¼ÇµÄʱºò£¬Ëû/ËýÄÜ·ñÁ¢¿Ì²Âµ½Õâ¸ö×Ö¶Îʵ¼ÊÉϱíʾµÄÄÚÈÝ£¿ÕâÖ»ÊÇÒ»¸ö¼òµ¥µÄÊäÈë¿ò£¬»òÕßÒ»¸öÈÕÆÚÑ¡ÔñÆ÷£¿ÄãÐèÒª²é¿´jQuery´úÂëÀ´È·¶¨ÕâЩ¡£¶øAngularµÄ·½·¨ÊÇʹÓÃÒ»¸öÖ¸ÁîÀ´À©Õ¹HTML¡£ËùÒÔ£¬Ò»¸öÈÕÆÚÑ¡ÔñÆ÷µÄÖ¸Áî¿ÉÒÔÊÇÏÂÃæµÄÐÎʽ£º

<input type="text" />

»òÕßÊÇÕâÑù£º

<input type="text" />

ÕâÖÖ´´½¨UI×齨µÄ·½Ê½¸ü¼ÓÖ±½ÓºÍÇåÎú¡£Äã¿ÉÒÔÇáÒ×µØÍ¨¹ý²é¿´ÔªËؾÍÃ÷°×Õâµ½µ×ÊÇʲô¡£

´´½¨×Ô¶¨ÒåÖ¸Á

Ò»¸öAngularÖ¸Áî¿ÉÒÔÓÐÒÔϵÄËÄÖÖ±íÏÖÐÎʽ£º 1. Ò»¸öеÄHTMLÔªËØ£¨<data-picker></data-picker>£© 2. ÔªËØµÄÊôÐÔ£¨<input type=¡±text¡± data-picker/>£© 3. CSS class£¨<input type=¡±text¡± class=¡±data-picker¡±/>£© 4. ×¢ÊÍ£¨<!¨Cdirective:data-picker ¨C>£© µ±È»£¬ÎÒÃÇ¿ÉÒÔ¿ØÖÆÎÒÃǵÄÖ¸ÁîÔÚHTMLÖеıíÏÖÐÎʽ¡£ÏÂÃæÎÒÃÇÀ´¿´Ò»ÏÂAngularJSÖеÄÒ»¸öµäÐ͵ÄÖ¸ÁîµÄд·¨¡£Ö¸Áî×¢²áµÄ·½Ê½Óë controller Ò»Ñù£¬µ«ÊÇËü·µ»ØµÄÊÇÒ»¸öÓµÓÐÖ¸ÁîÅäÖÃÊôÐԵļòµ¥¶ÔÏó(Ö¸ÁÒå¶ÔÏó) ¡£ÏÂÃæµÄ´úÂëÊÇÒ»¸ö¼òµ¥µÄ Hello World Ö¸Áî¡£

var app = angular.module('myapp', []);

app.directive('helloWorld', function() {
return {
restrict: 'AE',
replace: 'true',
template: '<h3>Hello World!!</h3>'
};
});

ÔÚÉÏÃæµÄ´úÂëÖУ¬app.directive()·½·¨ÔÚÄ£¿éÖÐ×¢²áÁËÒ»¸öеÄÖ¸Áî¡£Õâ¸ö·½·¨µÄµÚÒ»¸ö²ÎÊýÊÇÕâ¸öÖ¸ÁîµÄÃû×Ö¡£µÚ¶þ¸ö²ÎÊýÊÇÒ»¸ö·µ»ØÖ¸ÁÒå¶ÔÏóµÄº¯Êý¡£Èç¹ûÄãµÄÖ¸ÁîÒÀÀµÓÚÆäËûµÄ¶ÔÏó»òÕß·þÎñ£¬±ÈÈç $rootScope, $http, »òÕß$compile£¬ËûÃÇ¿ÉÒÔÔÚÕâ¸öʱ¼ä±»×¢Èë¡£Õâ¸öÖ¸ÁîÔÚHTMLÖÐÒÔÒ»¸öÔªËØÊ¹Óã¬ÈçÏ£º

<hello-world/>
//OR
<hello:world/>

»òÕߣ¬ÒÔÒ»¸öÊôÐԵķ½Ê½Ê¹Óãº

<div hello-world></div>
//OR
<div hello:world/>

Èç¹ûÄãÏëÒª·ûºÏHTML5µÄ¹æ·¶£¬Äã¿ÉÒÔÔÚÔªËØÇ°ÃæÌí¼Ó x- »òÕß data-µÄǰ׺¡£ËùÒÔÏÂÃæµÄ±ê¼ÇÒ²»áÆ¥Åä helloWorld Ö¸Á

&lt;div data-hello-world&gt;&lt;/div&gt;
//OR
&lt;div x-hello-world&gt;&lt;/div&gt;

×¢Ò⣺ ÔÚÆ¥ÅäÖ¸ÁîµÄʱºò£¬Angular»áÔÚÔªËØ»òÕßÊôÐÔµÄÃû×ÖÖÐÌÞ³ý x- »òÕß data- ǰ׺¡£ È»ºó½« ¨C »òÕß : Á¬½ÓµÄ×Ö·û´®×ª»»³ÉÍÕ·å(camelCase)±íÏÖÐÎʽ£¬È»ºóÔÙÓë×¢²á¹ýµÄÖ¸Áî½øÐÐÆ¥Åä¡£ÕâÊÇΪʲô£¬ÎÒÃÇÔÚHTMLÖÐÒÔ hello-world µÄ·½Ê½Ê¹Óà helloWorld Ö¸Áî¡£Æäʵ£¬Õâ¸úHTML¶Ô±êÇ©ºÍÊôÐÔ²»Çø·Ö´óСдÓйء£ ¾¡¹ÜÉÏÃæµÄÖ¸Áî½ö½öʵÏÖÁ˾²Ì¬ÎÄ×ÖµÄÏÔʾ£¬µ«ÊÇÕâÀﻹÊÇÓÐһЩÓÐȤµÄµãÖµµÃÎÒÃÇÈ¥ÍÚ¾ò¡£ÎÒÃÇÔÚÖ¸ÁÒå¹ý³ÌÖÐʹÓÃÁËÈý¸öÊôÐÔÀ´ÅäÖÃÖ¸Áî¡£ÎÒÃÇÀ´Ò»Ò»½éÉÜËûÃǵÄ×÷Óá£

restrict ¨C Õâ¸öÊôÐÔÓÃÀ´Ö¸¶¨Ö¸ÁîÔÚHTMLÖÐÈçºÎʹÓ㨻¹¼ÇµÃ֮ǰ˵µÄ£¬Ö¸ÁîµÄËÄÖÖ±íʾ·½Ê½Â𣩡£ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÎÒÃÇʹÓÃÁË ¡®AE¡¯¡£ËùÒÔÕâ¸öÖ¸Áî¿ÉÒÔ±»µ±×÷еÄHTMLÔªËØ»òÕßÊôÐÔÀ´Ê¹Óá£Èç¹ûÒªÔÊÐíÖ¸Áî±»µ±×÷classÀ´Ê¹Óã¬ÎÒÃǽ« restrict ÉèÖÃ³É ¡®AEC¡¯¡£

template ¨C Õâ¸öÊôÐԹ涨ÁËÖ¸Áî±»Angular±àÒëºÍÁ´½Ó£¨link£©ºóÉú³ÉµÄHTML±ê¼Ç¡£Õâ¸öÊôÐÔÖµ²»Ò»¶¨ÒªÊǼòµ¥µÄ×Ö·û´®¡£template ¿ÉÒԷdz£¸´ÔÓ£¬¶øÇÒ¾­³£°üº¬ÆäËûµÄÖ¸ÁÒÔ¼°±í´ïʽ({{ }})µÈ¡£¸ü¶àµÄÇé¿öÏÂÄã¿ÉÄÜ»á¼ûµ½ templateUrl£¬ ¶ø²»ÊÇ template¡£ËùÒÔ£¬ÀíÏëÇé¿öÏ£¬ÄãÓ¦¸Ã½«Ä£°å·Åµ½Ò»¸öÌØ¶¨µÄHTMLÎļþÖУ¬È»ºó½« templateUrl ÊôÐÔÖ¸ÏòËü¡£

replace ¨C Õâ¸öÊôÐÔÖ¸Ã÷Éú³ÉµÄHTMLÄÚÈÝÊÇ·ñ»áÌæ»»µô¶¨Òå´ËÖ¸ÁîµÄHTMLÔªËØ¡£ÔÚÎÒÃǵÄÀý×ÓÖУ¬ÎÒÃÇÓà <hello-world></hello-world>µÄ·½Ê½Ê¹ÓÃÎÒÃǵÄÖ¸Á²¢ÇÒ½« replace ÉèÖÃ³É true¡£ËùÒÔ£¬ÔÚÖ¸Áî±»±àÒëÖ®ºó£¬Éú³ÉµÄÄ£°åÄÚÈÝÌæ»»µôÁË <hello-world></hello-world>¡£×îÖÕµÄÊä³öÊÇ <h3>Hello World!!</h3>¡£Èç¹ûÄ㽫 replace ÉèÖÃ³É false£¬Ò²¾ÍÊÇĬÈÏÖµ£¬ÄÇôÉú³ÉµÄÄ£°å»á±»²åÈëµ½¶¨ÒåÖ¸ÁîµÄÔªËØÖС£

´ò¿ªÕâ¸ö plunker£¬ÔÚ¡±Hello World!!¡±ÓÒ¼ü¼ì²éÔªËØÄÚÈÝ£¬À´¸üÐÎÏóµØÃ÷°×ÕâЩ¡£

Linkº¯ÊýºÍScope

Ö¸ÁîÉú³É³öµÄÄ£°åÆäʵûÓÐÌ«¶àÒâÒ壬³ý·ÇËüÔÚÌØ¶¨µÄscopeϱàÒ롣ĬÈÏÇé¿öÏ£¬Ö¸Áî²¢²»»á´´½¨ÐµÄ×Óscope¡£¸ü¶àµÄ£¬ËüʹÓø¸scope¡£Ò²¾ÍÊÇ˵£¬Èç¹ûÖ¸Áî´æÔÚÓÚÒ»¸öcontrollerÏ£¬Ëü¾Í»áʹÓÃÕâ¸öcontrollerµÄscope¡£ ÈçºÎÔËÓÃscope£¬ÎÒÃÇÒªÓõ½Ò»¸ö½Ð×ö link µÄº¯Êý¡£ËüÓÉÖ¸ÁÒå¶ÔÏóÖеÄlinkÊôÐÔÅäÖá£ÈÃÎÒÃÇÀ´¸Ä±äÒ»ÏÂÎÒÃÇµÄ helloWorld Ö¸Áµ±Óû§ÔÚÒ»¸öÊäÈë¿òÖÐÊäÈëÒ»ÖÖÑÕÉ«µÄÃû³ÆÊ±£¬Hello World ÎÄ×ֵı³¾°É«×Ô¶¯·¢Éú±ä»¯¡£Í¬Ê±£¬µ±Óû§ÔÚ Hello World ÎÄ×ÖÉϵã»÷ʱ£¬±³¾°É«±ä»Ø°×É«¡£ ÏàÓ¦µÄHTML±ê¼ÇÈçÏ£º

<body ng-controller="MainCtrl">
<input type="text" ng-model="color" placeholder="Enter a color" />
<hello-world/>
</body>

Ð޸ĺóµÄ helloWorld Ö¸ÁîÈçÏ£º

app.directive('helloWorld', function() {
return {
restrict: 'AE',
replace: true,
template: '<p style="background-color:{{color}}">Hello World',
link: function(scope, elem, attrs) {
elem.bind('click', function() {
elem.css('background-color', 'white');
scope.$apply(function() {
scope.color = "white";
});
});
elem.bind('mouseover', function() {
elem.css('cursor', 'pointer');
});
}
};
});

ÎÒÃÇ×¢Òâµ½Ö¸ÁÒåÖÐµÄ link º¯Êý¡£ ËüÓÐÈý¸ö²ÎÊý£º

scope ¨C Ö¸ÁîµÄscope¡£ÔÚÎÒÃǵÄÀý×ÓÖУ¬Ö¸ÁîµÄscope¾ÍÊǸ¸controllerµÄscope¡£

elem ¨C Ö¸ÁîµÄjQLite(jQueryµÄ×Ó¼¯)°ü×°DOMÔªËØ¡£Èç¹ûÄãÔÚÒýÈëAngularJS֮ǰÒýÈëÁËjQuery£¬ÄÇôÕâ¸öÔªËØ¾ÍÊÇjQueryÔªËØ£¬¶ø²»ÊÇjQLiteÔªËØ¡£ÓÉÓÚÕâ¸öÔªËØÒѾ­±»jQuery/jQLite°ü×°ÁË£¬ËùÒÔÎÒÃǾÍÔÚ½øÐÐDOM²Ù×÷µÄʱºò¾Í²»ÐèÒªÔÙʹÓà $()À´½øÐаü×°¡£

attr ¨C Ò»¸ö°üº¬ÁËÖ¸ÁîËùÔÚÔªËØµÄÊôÐԵıê×¼»¯µÄ²ÎÊý¶ÔÏó¡£¾Ù¸öÀý×Ó£¬Äã¸øÒ»¸öHTMLÔªËØÌí¼ÓÁËһЩÊôÐÔ£º£¬ÄÇô¿ÉÒÔÔÚ link º¯ÊýÖÐͨ¹ý attrs.someAttribute À´Ê¹ÓÃËü¡£

linkº¯ÊýÖ÷ÒªÓÃÀ´ÎªDOMÔªËØÌí¼Óʼþ¼àÌý¡¢¼àÊÓÄ£ÐÍÊôÐԱ仯¡¢ÒÔ¼°¸üÐÂDOM¡£ÔÚÉÏÃæµÄÖ¸Áî´úÂëÆ¬¶ÎÖУ¬ÎÒÃÇÌí¼ÓÁËÁ½¸öʼþ£¬ click£¬ºÍ mouseover¡£click ´¦Àíº¯ÊýÓÃÀ´ÖØÖà <p> µÄ±³¾°É«£¬¶ø mouseover ´¦Àíº¯Êý¸Ä±äÊó±êΪ pointer¡£ÔÚÄ£°åÖÐÓÐÒ»¸ö±í´ïʽ {{color}}£¬µ±¸¸scopeÖÐµÄ color ·¢Éú±ä»¯Ê±£¬ËüÓÃÀ´¸Ä±ä Hello World ÎÄ×ֵı³¾°É«¡£ Õâ¸ö plunker ÑÝʾÁËÕâЩ¸ÅÄî¡£

compileº¯Êý

compile º¯ÊýÔÚ link º¯Êý±»Ö´ÐÐ֮ǰÓÃÀ´×öһЩDOM¸ÄÔì¡£Ëü½ÓÊÕÏÂÃæµÄ²ÎÊý£º

tElement ¨C Ö¸ÁîËùÔÚµÄÔªËØ

attrs ¨C ÔªËØÉϸ³ÓèµÄ²ÎÊýµÄ±ê×¼»¯ÁбíҪעÒâµÄÊÇ compile º¯Êý²»ÄÜ·ÃÎÊ scope£¬²¢ÇÒ±ØÐë·µ»ØÒ»¸ö link º¯Êý¡£µ«ÊÇÈç¹ûûÓÐÉèÖà compile º¯Êý£¬Äã¿ÉÒÔÕý³£µØÅäÖà link º¯Êý£¬£¨ÓÐÁËcompile£¬¾Í²»ÄÜÓÃlink£¬linkº¯ÊýÓÉcompile·µ»Ø£©¡£compileº¯Êý¿ÉÒÔд³ÉÈçϵÄÐÎʽ£º

app.directive('test', function() {
return {
compile: function(tElem,attrs) {
//do optional DOM transformation here
return function(scope,elem,attrs) {
//linking function here
};
}
};
});

´ó¶àÊýµÄÇé¿öÏ£¬ÄãÖ»ÐèҪʹÓà link º¯Êý¡£ÕâÊÇÒòΪ´ó²¿·ÖµÄÖ¸ÁîÖ»ÐèÒª¿¼ÂÇ×¢²áʼþ¼àÌý¡¢¼àÊÓÄ£ÐÍ¡¢ÒÔ¼°¸üÐÂDOMµÈ£¬ÕâЩ¶¼¿ÉÒÔÔÚ link º¯ÊýÖÐÍê³É¡£ µ«ÊǶÔÓÚÏñ ng-repeat Ö®ÀàµÄÖ¸ÁÐèÒª¿Ë¡ºÍÖØ¸´ DOM ÔªËØ¶à´Î£¬ÔÚ link º¯ÊýÖ´ÐÐ֮ǰÓÉ compile º¯ÊýÀ´Íê³É¡£Õâ¾Í´øÀ´ÁËÒ»¸öÎÊÌ⣬ΪʲôÎÒÃÇÐèÒªÁ½¸ö·Ö¿ªµÄº¯ÊýÀ´Íê³ÉÉú³É¹ý³Ì£¬ÎªÊ²Ã´²»ÄÜֻʹÓÃÒ»¸ö£¿Òª»Ø´ðºÃÕâ¸öÎÊÌ⣬ÎÒÃÇÐèÒªÀí½âÖ¸ÁîÔÚAngularÖÐÊÇÈçºÎ±»±àÒëµÄ£¡

Ö¸ÁîÊÇÈçºÎ±»±àÒëµÄ

µ±Ó¦ÓÃÒýµ¼Æô¶¯µÄʱºò£¬Angular¿ªÊ¼Ê¹Óà $compile ·þÎñ±éÀúDOMÔªËØ¡£Õâ¸ö·þÎñ»ùÓÚ×¢²á¹ýµÄÖ¸ÁîÔÚ±ê¼ÇÎı¾ÖÐËÑË÷Ö¸Áî¡£Ò»µ©ËùÓеÄÖ¸Áî¶¼±»Ê¶±ðºó£¬AngularÖ´ÐÐËûÃÇµÄ compile ·½·¨¡£ÈçÇ°ÃæËù½²µÄ£¬compile ·½·¨·µ»ØÒ»¸ö link º¯Êý£¬±»Ìí¼Óµ½ÉÔºóÖ´ÐÐµÄ link º¯ÊýÁбíÖС£Õâ±»³ÆÎª±àÒë½×¶Î¡£Èç¹ûÒ»¸öÖ¸ÁîÐèÒª±»¿Ë¡ºÜ¶à´Î£¨±ÈÈç ng-repeat£©£¬compileº¯ÊýÖ»ÔÚ±àÒë½×¶Î±»Ö´ÐÐÒ»´Î£¬¸´ÖÆÕâЩģ°å£¬µ«ÊÇlink º¯Êý»áÕë¶Ôÿ¸ö±»¸´ÖƵÄʵÀý±»Ö´ÐС£ËùÒÔ·Ö¿ª´¦Àí£¬ÈÃÎÒÃÇÔÚÐÔÄÜÉÏÓÐÒ»¶¨µÄÌá¸ß¡£ÕâҲ˵Ã÷ÁËΪʲôÔÚ compile º¯ÊýÖв»ÄÜ·ÃÎʵ½scope¶ÔÏó¡£ ÔÚ±àÒë½×¶ÎÖ®ºó£¬¾Í¿ªÊ¼ÁËÁ´½Ó£¨linking£©½×¶Î¡£ÔÚÕâ¸ö½×¶Î£¬ËùÓÐÊÕ¼¯µÄ link º¯Êý½«±»Ò»Ò»Ö´ÐС£Ö¸Áî´´Ôì³öÀ´µÄÄ£°å»áÔÚÕýÈ·µÄscopeϱ»½âÎöºÍ´¦Àí£¬È»ºó·µ»Ø¾ßÓÐʼþÏìÓ¦µÄÕæÊµµÄDOM½Úµã¡£

¸Ä±äÖ¸ÁîµÄScope

ĬÈÏÇé¿öÏ£¬Ö¸Áî»ñÈ¡Ëü¸¸½ÚµãµÄcontrollerµÄscope¡£µ«Õâ²¢²»ÊÊÓÃÓÚËùÓÐÇé¿ö¡£Èç¹û½«¸¸controllerµÄscope±©Â¶¸øÖ¸ÁÄÇôËûÃÇ¿ÉÒÔËæÒâµØÐÞ¸Ä scope µÄÊôÐÔ¡£ÔÚijЩÇé¿öÏ£¬ÄãµÄÖ¸ÁîÏ£ÍûÄܹ»Ìí¼ÓһЩ½öÏÞÄÚ²¿Ê¹ÓõÄÊôÐԺͷ½·¨¡£Èç¹ûÎÒÃÇÔÚ¸¸µÄscopeÖÐÌí¼Ó£¬»áÎÛȾ¸¸scope¡£ ÆäʵÎÒÃÇ»¹ÓÐÁ½ÖÖÑ¡Ôñ£º

Ò»¸ö×Óscope ¨C Õâ¸öscopeÔ­Ðͼ̳Ð×Ó¸¸scope¡£

Ò»¸ö¸ôÀëµÄscope ¨C Ò»¸ö¹ÂÁ¢´æÔÚ²»¼Ì³Ð×Ô¸¸scopeµÄscope¡£

ÕâÑùµÄscope¿ÉÒÔͨ¹ýÖ¸ÁÒå¶ÔÏóÖÐ scope ÊôÐÔÀ´ÅäÖá£ÏÂÃæµÄ´úÂëÆ¬¶ÎÊÇÒ»¸öÀý×Ó£º

app.directive('helloWorld', function() {
return {
scope: true, // use a child scope that inherits from parent
restrict: 'AE',
replace: 'true',
template: '<h3>Hello World!!</h3>'
};
});

ÉÏÃæµÄ´úÂ룬ÈÃAngular¸øÖ¸Áî´´½¨Ò»¸ö¼Ì³Ð×Ô¸¸socpeµÄеÄ×Óscope¡£ ÁíÍâÒ»¸öÑ¡Ôñ£¬¸ôÀëµÄscope£º

app.directive('helloWorld', function() {
return {
scope: {}, // use a new isolated scope
restrict: 'AE',
replace: 'true',
template: '<h3>Hello World!!</h3>'
};
});

Õâ¸öÖ¸ÁîʹÓÃÁËÒ»¸ö¸ôÀëµÄscope¡£¸ôÀëµÄscopeÔÚÎÒÃÇÏëÒª´´½¨¿ÉÖØÓõÄÖ¸ÁîµÄʱºòÊǷdz£Óкô¦µÄ¡£Í¨¹ýʹÓøôÀëµÄscope£¬ÎÒÃÇÄܹ»±£Ö¤ÎÒÃǵÄÖ¸ÁîÊÇ×Ô°üº¬µÄ£¬¿ÉÒÔ±»ºÜÈÝÒ׵IJåÈëµ½HTMLÓ¦ÓÃÖС£ ËüÄÚ²¿²»ÄÜ·ÃÎʸ¸µÄscope£¬Ëù±£Ö¤Á˸¸scope²»±»ÎÛȾ¡£ ÔÚÎÒÃÇµÄ helloWorld Ö¸ÁîÀý×ÓÖУ¬Èç¹ûÎÒÃǽ« scope ÉèÖÃ³É {}£¬ÄÇôÉÏÃæµÄ´úÂ뽫²»»á¹¤×÷¡£ Ëü»á´´½¨Ò»¸öеĸôÀëµÄscope£¬ÄÇôÏàÓ¦µÄ±í´ïʽ {{color}} »áÖ¸Ïòµ½Õâ¸öеÄscopeÖУ¬ËüµÄÖµ½«ÊÇ undefined. ʹÓøôÀëµÄscope²¢²»Òâζ×ÅÎÒÃÇÍêÈ«²»ÄÜ·ÃÎʸ¸scopeµÄÊôÐÔ¡£ÆäʵÓÐһЩ¼¼Êõ¿ÉÒÔÔÊÐíÎÒÃÇ·ÃÎʸ¸scopeµÄÊôÐÔ£¬ÉõÖÁ¼àÊÓËûÃǵı仯¡£ÎÒÃÇ»áÔÚÖ¸ÁîÕâ¸öϵÁеĵڶþ²¿·ÖÖÐÌÖÂÛÕâЩ¼¼Êõ£¬ÒÔ¼°Ò»Ð©¸ü¸ß¼¶µÄ¸ÅÄ±ÈÈç Controller º¯Êý¡£ µÚ¶þ²¿·ÖÒ²»áºÍÄãÒ»ÆðʹÓÃAngularÖ¸Áî´´½¨Ò»¸ö½ÏΪ·á¸»µÄ¼Çʱ¾Ó¦ÓᣠËùÒÔ£¬Çë±£³Ö¹Ø×¢¡£

   
1583 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕ Ïà¹ØÎĵµ Ïà¹Ø¿Î³Ì



Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Àí½âJavascript
·ÇµäÐÍajaxʵ¼ù
³¹µ×µÄAjax
javascript ʹÓÃCookies
ʹÓà jQuery ¼ò»¯ Ajax ¿ª·¢

Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ

ijº½¿Õ¹«Ë¾IT²¿ JavaScriptʵ¼ù
ijµçÊÓÈí¼þ HTML5ºÍJavaScript
Öк½ÐÅ JavaScript¸ß¼¶Ó¦Óÿª·¢
´óÇìÓÍÌï web½çÃæAjax¿ª·¢¼¼Êõ
ºÍÀûʱ ʹÓÃAJAX½øÐÐWEBÓ¦Óÿª·¢