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中,你應該能夠輕鬆地做到這一點。