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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
AngularJS ×î¼Ñʵ¼ù
 
×÷Õß whuhacker£¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-11-12
  3645  次浏览      30
 

AngularJS ÊÇÒ»¸ö Web Ó¦Óÿò¼Ü£¬ËüʵÏÖÁËǰ¶ËµÄ MVC ¼Ü¹¹£¬ÄÜÈÿª·¢ÈËÔ±ºÜ·½±ãµØÊµÏÖÒµÎñÂß¼­¡£

¾Ù¸öÀõ×Ó£¬Òª×öµ½ÏÂÃæµÄЧ¹û£¬ÒÔǰ¿ÉÄÜÐèҪдһÁ¬´®µÄ JavaScript ´úÂë°ó¶¨ N ¶àʼþ¡£¶øÊ¹Óà AngularJS ¿ò¼Ü£¬Ò»¾ä JavaScript ¶¼²»ÓÃд¾ÍÄÜʵÏÖÁË£¬ÉñÆæ°É£¿

script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<div data-ng-app>
µ¥¼Û£º <input type="number" min=0 ng-model="price" ng-init="price = 299">
<br>
ÊýÁ¿£º <input type="number" min=0 ng-model="quantity" ng-init="quantity = 1">
<br>
×ܼۣº {{ quantity * price }}
</div>

ÕâµÃÒæÓÚ AngularJS ÖеÄË«ÏòÊý¾Ý°ó¶¨ÌØÐÔ(Two Way Data-Binding)£¬½« Model ºÍ View ×Ô¶¯¹ØÁªÁËÆðÀ´£¬ÔÚ¸ü¸´ÔÓµÄÒµÎñ³¡¾°Ï£¬»¹ÓдúÂë·ÖÀëµÄºÃ´¦£¬½« DOM ²Ù×÷ºÍÓ¦ÓÃÂß¼­½âñ·Ç³£ÊµÓá£

²»¹ýûÓÐÒøµ¯£¬ºÍÆäËû¿ò¼ÜÒ»Ñù£¬AngularJS Ò²ÓÐËüµÄ¾ÖÏÞ¡£CRUD ÀàÐ͵IJÙ×÷ÊÇËüËùÉó¤µÄ£¬ÏëÏë¿´ÒÔǰд¹ýµÄ¹ÜÀíºǫ́£¬¼¸ºõ´ó²¿·Ö¶¼ÊÇ´ÓÊý¾Ý¿âÖжÁÈ¡Êý¾Ý£¬È»ºó³ÊÏÖÔÚÒ³ÃæÉÏ£¬½øÐи÷ÖÖÔöɾ¸Ä²é¡£AngularJS Ô¼¶¨ÁËÒ»Ì׹淶£¨Ô¼¶¨ÓÅÓÚÅäÖã©£¬ÓÚÊÇÄã¿ÉÒԺܱã½ÝµØ²Ù×÷Êý¾Ý¡£¶øÔÚÆäËû·½Ã棬ÀýÈ翪·¢¸´Ô Web ÓÎÏ·£¬AngularJS ÔòÊÇÎÞÓÃÎäÖ®µØÁË¡£

Ò»¡¢AngularJS Öеľ«ÃÀÌØÐÔ

Ë«Ïò°ó¶¨

ÉÏÃæµÄÀý×ÓÒѾ­ËµÃ÷ÁË£¬ÎÒÃÇ¿ÉÒÔÏñ PHP Smarty Ä£°åÒ»ÑùÔÚ HTML ÖÐд±í´ïʽ£¬Óà {{ ºÍ }} °üÆðÀ´¡£ÔÚ AngularJS ÀView ºÍ Model ÊÇÔÚ Controller ÀïÃæ°ó¶¨µÄ£¬ËùÒÔÎÞÂÛÄãÔÚ View µÄ±íµ¥ÖÐÐÞ¸ÄÁËÄÚÈÝ£¬»¹ÊÇÔÚ Controller Àïͨ¹ý´úÂëÐÞ¸ÄÁË Model Öµ£¬Á½±ß¶¼»á¼´Ê±·¢Éú±ä»¯£¬Í¬²½¸üС£ÒòΪ AngularJS »á¼à¿Ø £¨watch£© Model ¶ÔÏóµÄ±ä»¯£¬ËæÊ±·´Ó³µ½ View ÖС£

Filter

Filter ÀàËÆ Unix ÀïÃæµÄ | ¹ÜµÀ¸ÅÄAngularJS °ÑËü°áµ½ÁËǰ¶Ë¡£»¹ÊǾٸöÀý×Ó£¬ÄãÃǸÐÊÜһϡª¡ª

<div>{{ 9999 | number }}</div>
<div>{{ 9999+1 | number:2 }}</div>
<div>{{ 9*9 | currency }}</div>
<div>{{ 'Hello World' | uppercase }}</div>

Êä³ö½á¹û£º

9,999
10,000.00
$81.00
HELLO WORLD

¶þ¡¢AngularJS ÖеÄһЩ¡°¿Ó¡±

ÓÉÓÚ¹ýȥд JavaScript µÄϰ¹ßʹȻ£¬ÈËÃǺÜÈÝÒ×µô½øÒ»Ð© AngularJS µÄÏÝÚåÀï¡£ÏÂÃæµÄÄÚÈݼÙÉèÄãÒѾ­Á˽âǰ¶Ë MVC ¸ÅÄ²¢¶Ô AngularJS ÓÐÁËÒ»¶¨¾­Ñ飬³õѧÕß¶ÁÆðÀ´¿ÉÄܱȽϼèÉî»Þɬ¡£

DOM ²Ù×÷

±ÜÃâʹÓà jQuery À´²Ù×÷ DOM£¬°üÀ¨Ôö¼ÓÔªËØ½Úµã£¬ÒƳýÔªËØ½Úµã£¬»ñÈ¡ÔªËØÄÚÈÝ£¬Òþ²Ø»òÏÔÊ¾ÔªËØ¡£ÄãÓ¦¸ÃʹÓà directives À´ÊµÏÖÕâЩ¶¯×÷£¬ÓбØÒªµÄ»°Ä㻹Ҫ±àд×Ô¼ºµÄ directives¡£

Èç¹ûÄã¸Ðµ½ºÜÄѸıäϰ¹ß£¬ÄÇô¿¼ÂÇ´ÓÄãµÄÍøÒ³ÖÐÒÆ³ý jQuery °É¡£ÕæµÄ£¬AngularJS ÖÐµÄ $http ·þÎñ·Ç³£Ç¿´ó£¬»ù±¾¿ÉÒÔÌæ´ú jQuery µÄ ajax º¯Êý£¬¶øÇÒ AngularJS ÄÚǶÁË jQLite ¡ª¡ª ËüÄÚ²¿ÊµÏÖµÄÒ»¸ö jQuery ×Ó¼¯£¬°üº¬Á˳£ÓÃµÄ jQuery DOM ²Ù×÷·½·¨£¬Ê¼þ°ó¶¨µÈµÈ¡£µ«Õâ²¢²»ÊÇ˵ÓÃÁËAngularJS ¾Í²»ÄÜÓà jQuery ÁË¡£Èç¹ûÄãµÄÍøÒ³ÓÐÔØÈë jQuery ÄÇô AngularJS »áÓÅÏȲÉÓÃÄãµÄ jQuery£¬·ñÔòËü»á fall back µ½ jQLite¡£

ÐèÒª×Ô¼º±àд directives µÄÇé¿öͨ³£Êǵ±ÄãʹÓÃÁ˵ÚÈý·½µÄ jQuery ²å¼þ¡£ÒòΪ²å¼þÔÚ AngularJS Ö®Íâ¶Ô±íµ¥Öµ½øÐиü¸Ä£¬²¢²»Äܼ´Ê±·´Ó¦µ½ Model ÖС£ÀýÈçÎÒÃÇÓõñȽ϶àµÄ jQueryUI datepicker ²å¼þ£¬µ±ÄãÑ¡ÖÐÒ»¸öÈÕÆÚºó£¬²å¼þ»á½«ÈÕÆÚ×Ö·û´®Ìîµ½ input ÊäÈë¿òÖС£View ¸Ä±äÁË£¬È´²¢Ã»ÓиüРModel£¬ÒòΪ $('.datepicker').datepicker(); Õâ¶Î´úÂë²»ÊôÓÚ AngularJS µÄ¹ÜÀí·¶Î§¡£ÎÒÃÇÐèÒª±àдһ¸ödirective À´Èà DOM µÄ¸Ä±ä¼´Ê±¸üе½ Model Àï¡£

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

directives.directive('datepicker', function() {
return function(scope, element, attrs) {
element.datepicker({
inline: true,
dateFormat: 'dd.mm.yy',
onSelect: function(dateText) {
var modelPath = $(this).attr('ng-model');
putObject(modelPath, scope, dateText);
scope.$apply();
}
});
}
});

È»ºóÔÚ HTML ÖÐÒýÈëÕâ¸ö direcitve

<input type="text" datepicker ng-model="myObject.myDateValue" />

˵°×ÁË directive ¾ÍÊÇÔÚ HTML Àïд×Ô¶¨ÒåµÄ±êÇ©ÊôÐÔ£¬´ïµ½²å¼þµÄ×÷Óá£ÕâÖÖÉùÃ÷ʽµÄÓï·¨À©Õ¹ÁË HTML¡£

ÐèҪ˵Ã÷µÄÊÇ£¬ÓÐÒ»¸ö AngularUI ÏîÄ¿ÌṩÁË´óÁ¿µÄ directive ¸øÎÒÃÇʹÓ㬰üÀ¨ Bootstrap ¿ò¼ÜÖеIJå¼þÒÔ¼°»ùÓÚ jQuery µÄÆäËûºÜÈÈÃÅµÄ UI ×é¼þ¡£ÎÒ֮ǰ˵¹ý AngularJS µÄÉçÇøºÜ»îÔ¾ÂÉú̬ϵͳ½¡È«¡£

ngOption ÖÐµÄ value

ÕâÊǸö´ó¿Ó¡£Èç¹ûÄãÈ¥²é¿´ ngOption Éú³ÉµÄ <select> ÖÐµÄ <option> µÄÑ¡ÏîÖµ£¨Ã¿¸ö <option value="xxx"> µÄ value ²¿·Ö£©£¬ÄǾø¶ÔÊÇÍ÷·ÑÐÄ»ú¡£ÒòΪÕâÀïµÄÖµÓÀÔ¶¶¼»áÊÇ AngularJS ÄÚ²¿ÔªËصÄË÷Òý£¬²¢²»ÊÇÄãËùÖ¸¶¨µÄ±íµ¥Ñ¡ÏîÖµ¡£

»¹ÊÇҪת±ä¹ÛÄAngularJS ÒѾ­²»ÔÙÓÃ±íµ¥½øÐÐÊý¾Ý½»»¥ÁË£¬¶øÊÇÓà Model¡£Ê¹Óà $http À´Ìá½» Model£¬ÔÚ php ÖÐÔòʹÓà file_get_contents('php://input') À´»ñȡǰ¶ËÌá½»µÄÊý¾Ý¡£

{{ }} µÄÎÊÌâ

ÔÚÒ³Ãæ³õʼ»¯µÄʱºò£¬Óû§¿ÉÄܻῴµ½ {{ }}£¬È»ºóÉÁ˸һϲųöÏÖÕæÕýµÄÄÚÈÝ¡£

½â¾ö°ì·¨£º

1.ʹÓà ng-cloak directive À´Òþ²ØËü

2.ʹÓà ng-bind Ìæ´ú {{ }}

½«½çÃæÓëÒµÎñÂß¼­·ÖÀë

Controller ²»Ó¦¸ÃÖ±½ÓÒýÓà DOM£¬¶øÓ¦¸Ã¿ØÖÆ view µÄÐÐΪ¡£ÀýÈç¡°Èç¹ûÓû§²Ù×÷ÁË X£¬Ó¦¸Ã·¢ÉúʲôÊÂÇ顱£¬¡°ÎÒ´ÓÄÄÀï¿ÉÒÔ»ñµÃ X£¿¡±

Service Ôڴ󲿷ÖÇé¿öÏÂÒ²²»Ó¦¸ÃÖ±½ÓÒýÓà DOM£¬ËüÓ¦¸ÃÊÇÒ»¸öµ¥Àý£¨singletons£©£¬¶ÀÁ¢ÓÚ½çÃæ£¬Óë view µÄÂß¼­Î޹ء£ËüµÄ½ÇɫֻÊÇ¡°×ö X ²Ù×÷¡±¡£

DOM ²Ù×÷Ó¦¸Ã·ÅÔÚ directives ÀïÃæ¡£

¾¡Á¿¸´ÓÃÒÑÓй¦ÄÜ

ÄãËùдµÄ¹¦ÄܺܿÉÄÜ AngularJS ÒѾ­ÊµÏÖÁË£¬ÓÐһЩ´úÂëÊÇ¿ÉÒÔ³éÏó³öÀ´¸´Óõģ¬Ê¹Óøü Angular µÄ·½Ê½¡£×ÜÖ®¾ÍÊǺܶà jQuery µÄ·±Ëö´úÂë¿ÉÒÔ±»Ìæ´ú¡£

1. ng-repeat

ng-repeat ºÜÓÐÓᣵ± Ajax ´Ó·þÎñÆ÷»ñµÃÊý¾Ýºó£¬ÎÒÃǾ­³£Ê¹Óà jQuery £¨±ÈÈçÉÏÃæ½²¹ýµÄÀý×Ó£© ÏòijЩ HTML ÈÝÆ÷½ÚµãÖÐÌí¼Ó¸ü¶àµÄÔªËØ£¬ÕâÔÚ AngularJS ÀïÊDz»ºÃµÄ×ö·¨¡£ÓÐÁË ng-repeat Ò»ÇоͱäµÃ·Ç³£¼òµ¥ÁË¡£ÔÚÄãµÄ $scope Öж¨ÒåÒ»¸öÊý×é £¨model£© À´±£´æ´Ó·þÎñÆ÷À­È¡µÄÊý¾Ý£¬È»ºóʹÓà ng-repeat ½«ËüÓë DOM °ó¶¨¼´¿É¡£ÏÂÃæµÄÀý×Ó³õʼ»¯¶¨ÒåÁË friends Õâ¸ö model

<div ng-init="friends = [{name:'John', age:25}, {name:'Mary', age:28}]">
I have {{friends.length}} friends. They are:
<ul>
<li ng-repeat="friend in friends">
[{{$index + 1}}] {{friend.name}} who is {{friend.age}} years old.
</li>
</ul>
</div>

ÏÔʾ½á¹û

I have 2 friends. They are:
[1] John who is 25 years old.
[2] Mary who is 28 years old.

2. ng-show

ng-show Ò²ºÜÓÐÓá£Ê¹Óà jQuery À´¸ù¾ÝÌõ¼þ¿ØÖƽçÃæÔªËØµÄÏÔʾÒþ²Ø£¬ÕâºÜ³£¼û¡£µ«ÊÇ Angular ÓиüºÃµÄ·½Ê½À´×öµ½ÕâÒ»µã¡£ng-show £¨ÒÔ¼° ng-hide£© ¿ÉÒÔ¸ù¾Ý²¼¶û±í´ïʽÀ´¾ö¶¨Òþ²ØºÍÏÔʾ¡£ÔÚ $scope Öж¨ÒåÒ»¸ö±äÁ¿£º

<div ng-show="!loggedIn">
µã»÷ <a href="#/login">ÕâÀï</a> µÇ¼
</div>

ÀàËÆµÄÄÚÖà directives »¹ÓÐ ng-disabled£¬ ng-switch µÈµÈ£¬ÓÃÓÚÌõ¼þ¿ØÖÆ£¬Óï·¨¼ò½à£¬¶¼ºÜÇ¿´ó¡£

3. ng-class

ng-class ÓÃÓÚÌõ¼þÐԵظøÔªËØÌí¼Ó class£¬ÒÔǰÎÒÃÇÒ²¾­³£Óà jQuery À´ÊµÏÖ¡£Angular ÖÐµÄ ng-class µ±È»¸üºÃÓÃÁË£¬Àý×Ó£º

<div ng-class="{ errorClass: isError, warningClass: isWarning, okClass: !isError && !isWarning }">...</div>

ÔÚÕâÀï ng-class ½ÓÊÜÒ»¸ö object ¶ÔÏó£¬key Ϊ CSS class Ãû£¬ÖµÎª $scope ±äÁ¿¿ØÖƵÄÌõ¼þ±í´ïʽ£¬ÆäËûÀàËÆµÄÄÚÖà directives »¹ÓÐ ng-class-even ºÍ ng-class-odd£¬ºÜʵÓá£

$watch ºÍ $apply

AngularJS µÄË«ÏòÊý¾Ý°ó¶¨ÊÇ×îÁîÈËÐ˷ܵÄÌØÐÔÁË£¬È»¶øËüÒ²²»ÊÇÈ«ÄܵÄħ·¨£¬ÔÚijЩÇé¿öÏÂÄãÐèÒª×öһЩССµÄÐÞÕý¡£

µ±ÄãʹÓà ng-model£¬ ng-repeat µÈµÈÀ´°ó¶¨Ò»¸öÔªËØµÄֵʱ£¬ AngularJS ΪÄǸöÖµ´´½¨ÁËÒ»¸ö $watch£¬Ö»ÒªÕâ¸öÖµÔÚ AngularJS µÄ·¶Î§ÄÚÓÐÈκθı䣬ËùÓеĵط½¶¼»áͬ²½¸üС£¶øÄãÔÚд×Ô¶¨ÒåµÄ directive ʱ£¬ÄãÐèÒª¶¨ÒåÄã×Ô¼ºµÄ $watch À´ÊµÏÖÕâÖÖ×Ô¶¯Í¬²½¡£

ÓÐʱºòÄãÔÚ´úÂëÖиıäÁË model µÄÖµ£¬view ȴûÓиüУ¬ÕâÔÚ×Ô¶¨Òåʼþ°ó¶¨Öо­³£Óöµ½¡£ÕâʱÄã¾ÍÐèÒªÊÖ¶¯µ÷Óà scope.$apply() À´´¥·¢½çÃæ¸üС£ÉÏÃæ datepicker µÄÀý×ÓÒѾ­ËµÃ÷ÁËÕâÒ»µã¡£µÚÈý·½²å¼þ¿ÉÄÜ»áÓÐ call back£¬ÎÒÃÇÒ²¿ÉÒ԰ѻص÷º¯Êýд³ÉÄäÃûº¯Êý×÷Ϊ²ÎÊý´«Èë$apply()ÖС£

½« ng-repeat ºÍÆäËû directives ½áºÏÆðÀ´

ng-repeat ºÜÓÐÓ㬲»¹ýËüºÍ DOM °ó¶¨ÁË£¬ºÜÄÑÔÚͬһ¸öÔªËØÉÏʹÓÃÆäËû directives £¨±ÈÈç ng-show£¬ ng-controller µÈµÈ£©¡£

Èç¹ûÄãÏë¶ÔÕû¸öÑ­»·Ê¹ÓÃij¸ö directive£¬Äã¿ÉÒÔÔÚ repeat ÍâÔÙ°üÒ»²ã¸¸ÔªËØ°Ñ directive дÔÚÄǶù£»Èç¹ûÄãÏë¶ÔÑ­»·ÄÚ²¿µÄÿһ¸öÔªËØÊ¹ÓÃij¸ö directive£¬ÄÇô°ÑËü·Åµ½ ng-repeat µÄÒ»¸ö×Ó½ÚµãÉϼ´¿É¡£

Scope

Scope ÔÚ templates Ä£°åÖÐÓ¦¸ÃÊÇ read-only µÄ£¬¶øÔÚ controller ÀïÓ¦¸ÃÊÇ write-only µÄ¡£Scope µÄÄ¿µÄÊÇÒýÓà model£¬¶ø²»ÊdzÉΪ model¡£model ¾ÍÊÇÎÒÃǶ¨ÒåµÄ JavaScript ¶ÔÏó¡£

$rootScope ÊÇ¿ÉÒÔÓõ쬲»¹ýºÜ¿ÉÄܱ»ÀÄÓÃ

Scopes ÔÚ AngularJS ÖÐÐγÉÒ»¶¨µÄ²ã¼¶¹ØÏµ£¬Ê÷×´½á¹¹±ØÈ»ÓÐÒ»¸ö¸ù½Úµã¡£Í¨³£ÎÒÃÇÓò»µ½Ëü£¬ÒòΪ¼¸ºõÿ¸ö view ¶¼ÓÐÒ»¸ö controller ÒÔ¼°Ïà¶ÔÓ¦µÄ×Ô¼ºµÄ scope¡£

µ«Å¼¶ûÓÐһЩÊý¾ÝÎÒÃÇÏ£ÍûÈ«¾ÖÓ¦ÓÃÔÚÕû¸ö app ÖУ¬ÕâʱÎÒÃÇ¿ÉÒÔ½«Êý¾Ý×¢Èë $rootScope¡£ÒòΪÆäËû scope ¶¼»á¼Ì³Ð root scope£¬ËùÒÔÄÇЩעÈëµÄÊý¾Ý¶ÔÓÚ ng-show ÕâÀà directive ¶¼ÊÇ¿ÉÓõ쬾ÍÏñÊÇÔÚ±¾µØ $scope ÖеıäÁ¿Ò»Ñù¡£

µ±È»£¬È«¾Ö±äÁ¿ÊÇа¶ñµÄ£¬Äã±ØÐëºÜСÐĵØÊ¹Óà $rootScope¡£ÌرðÊDz»ÒªÓÃÓÚ´úÂ룬¶ø½ö½öÓÃÓÚ×¢ÈëÊý¾Ý¡£Èç¹ûÄã·Ç³£Ï£ÍûÔÚ $rootScope дһ¸öº¯Êý£¬ÄÇ×îºÃ°ÑËüдµ½ service ÀÕâÑùÖ»ÓÐÓõ½µÄʱºòËü²Å»á±»×¢È룬²âÊÔÆðÀ´Ò²·½±ãЩ¡£

Ïà·´£¬Èç¹ûÒ»¸öº¯ÊýµÄ¹¦Äܽö½öÊÇ´æ´¢ºÍ·µ»ØÒ»Ð©Êý¾Ý£¬¾Í²»Òª°ÑËü´´½¨³ÉÒ»¸ö service¡£

Èý¡¢AngularJS ÏîÄ¿µÄĿ¼½á¹¹

ÔõÑù×éÖ¯´úÂëÎļþºÍĿ¼£¿Õâ¿ÖÅÂÊdzõѧÕßÒ»¿ªÊ¼¾Í»áÓöµ½µÄÎÊÌâ¡£AngularJS Ó¦Óÿª·¢µÄ¹Ù·½ÈëÃÅÏîÄ¿ angular-seed£¬ÆäÎļþ½á¹¹ÊÇÕâÑùµÄ£º

?css/
?img/
?js/ ?app.js
?controllers.js
?directives.js
?filters.js
?services.js

?lib/
?partials/

ÕâÖֽṹ¶ÔÓÚÒ»¸ö¼òµ¥µÄµ¥Ò³ app À´ËµÊÇ¿ÉÐеģ¬Ö»ÊÇÒ»µ©´úÂëÖдæÔÚ¶à¸ö Controller »òÕß Service£¬¾ÍºÜÄÑÕÒµ½ÏëҪѰÕҵĶÔÏóÁË¡£ÎÒÃÇ¿ÉÒÔ¶ÔÎļþ°´ÕÕÒµÎñÂß¼­½øÐвð·Ö£¬¾ÍÏñÏÂÃæÕâÑù£º

?controllers/ ?LoginController.js
?RegistrationController.js
?ProductDetailController.js
?SearchResultsController.js

?directives.js
?filters.js
?models/ ?CartModel.js
?ProductModel.js
?SearchResultsModel.js
?UserModel.js

?services/ ?CartService.js
?UserService.js
?ProductService.js

ÕâÖֽṹ°Ñ²»Í¬µÄÒµÎñ¹¦Äܲð·ÖΪ¶ÀÁ¢µÄÎļþ£¬ÌõÀíÇåÎú£¬µ«ÊÇÈÔÓÐÒ»¶¨µÄ¾ÖÏÞÐÔ¡£×î´óµÄÎÊÌâÊÇÒ»¸öÒµÎñ¹¦ÄܵĴúÂë·Ö²¼ÔÚcontrollers, models, servers Èý¸ö²»Í¬Ä¿Â¼Ï£¬Òª´ÓÖÐÌô³öÕýÈ·µÄÎļþ£¬½¨Á¢Æð´úÂë¹ØÁª£¬»¹ÊÇÓÐЩÂé·³¡£°´ÕÕ¹¦ÄܽøÐÐÄ£¿é»¯»®·ÖĿ¼½á¹¹£¬Ó¦¸ÃÒª¸üΪºÏÀíһЩ£º

?cart/ ?CartModel.js
?CartService.js

?common/ ?directives.js
?filters.js

?product/ ?search/ ?SearchResultsController.js
?SearchResultsModel.js

?ProductDetailController.js
?ProductModel.js
?ProductService.js

?user/ ?LoginController.js
?RegistrationController.js
?UserModel.js
?UserService.js

ÕâÑùÒ²ÊÇÊÊºÏ RequireJS µÈÄ£¿é¼ÓÔØÆ÷µÄ×ÔȻֱ¹ÛµÄ´úÂë×éÖ¯·½Ê½¡£

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



Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹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Ó¦Óÿª·¢