2015-11-06 48 views
-2

我主要使用jQuery庫,並剛剛開始使用AngularJS。使用引導程序時,jQuery是強制性的嗎?

我已經閱讀了關於如何使用Angular的一些教程,但我不清楚爲什麼或什麼時候使用它,或者我可能會發現與使用jQuery相比有什麼好處。

在我看來,Angular讓你覺得MVC,這也許意味着你將你的網頁看作模板+數據組合。只要你覺得自己擁有動態數據,就可以使用{{數據綁定}}。然後Angular會爲您提供$ scope處理程序,您可以靜態填充或通過調用Web服務器來填充。這似乎與JSP設計網頁的方式特徵相似。我需要Angular嗎?對於簡單的DOM操作,它不涉及數據操作(例如:mousehover上的顏色變化,點擊時隱藏/顯示元素),jQuery或vanilla JS已經足夠且更加清晰。這假定Angular的MVC中的模型是反映頁面數據的任何東西,因此CSS屬性(如顏色,顯示/隱藏等)的更改不會影響模型。對於DOM操作,Angular與jQuery或vanilla JS有什麼優勢?

Angular做什麼使它對開發有用,而與jQuery可以和插件一起做什麼呢?

回答

0

Angular比簡單的jQuery更容易嗎?考慮下面的簡單例子:

<div> 
    <h1 id="header">Hi!</h1> 
    <form> 
     <label for="firstName">First Name:</label> 
     <input type="text" id="firstName" /> 
     <label for="lastName">Last Name:</label> 
     <input type="text" id="lastName" /> 
    </form> 
</div> 
<script> 
    $(function() { 
     function UpdateName() { 
      var firstName = $('#firstName').val(); 
      var lastName = $('#lastName').val(); 
      $('#header').text('Hi, ' + firstName + ' ' + lastName + '!'); 
     } 

     $('#firstName').change(function() { 
      UpdateName(); 
     }); 
     $('#lastName').change(function() { 
      UpdateName(); 
     }); 
    }); 
</script> 

以上是如何在jQuery中用輸入名稱更新標頭。在這個簡單的例子中,名字更新和姓氏更新的處理程序是相同的,因此您可以重新使用該代碼。但是,如果要更新更多的地方,處理程序將充滿DOM操作代碼。

<div ng-controller="TheController"> 
    <h1>Hi, {{First Name}} {{Last Name}}!</h1> 
    <form> 
     <label for="firstName">First Name:</label> 
     <input type="text" id="firstName" ng-model="firstName" /> 
     <label for="lastName">Last Name:</label> 
     <input type="text" id="lastName" ng-model="lastName" /> 
    </form> 
</div> 
<script> 
    myApp.controller('TheController', ['$scope', function ($scope) { 
     $scope.firstName = ''; 
     $scope.lastName = ''; 
    }]); 
</script> 

以上是你如何在Angular中做同樣的事情。注意沒有DOM操作代碼?所有這些都是由Angular處理的,讓您能夠處理控制器中的實際業務邏輯。

當然,你可以做所有你需要用vanilla JavaScript做的事情。 Angular購買的是不同邏輯的分離。如果您需要更新DOM中的10個不同位置並在輸入字段更新時向您的API發送POST請求,該怎麼辦? jQuery中字段的處理器會非常混亂和複雜,而在Angular中,你應該能夠輕鬆地做到這一點。

相關問題