Я хотел бы знать, в чем основное отличие синтаксиса "Контроллер как" или "$ scope" в angularjs.
- У них есть влияние на производительность, если да, какой синтаксис предпочтительнее.
- Синтаксис "Контроллер как", несомненно, улучшает читабельность кода, поскольку Knockout.js и другая среда JavaScript следуют одному и тому же синтаксису.
-
$scope предоставит наследование области, которое иногда дает нам странное поведение, например
<div ng-controller="firstController"> ParentController: <input type="text" ng-model="parent"/> <div ng-controller="secondController"> ChildController: <input type="text" ng-model="parent" /> </div> </div> app.controller('ParentController', function ($scope) { $scope.parent = "parentScope"; }).controller('ChildController', function ($scope) { /*empty*/ });
a) Первоначально ребенок получит родительское свойство и отображает "parentScope", когда мы обновим родительский дочерний элемент, также получим обновление. Но если мы изменили дочернее свойство, то теперь обновление родительского элемента не изменит его, поскольку оно имеет собственное свойство области.
b) Если я использую контроллер, так как дочерний элемент синтаксиса также обновляет родительский элемент.