Maison >interface Web >js tutoriel >Pourquoi utiliser la syntaxe « contrôleur en tant que » dans AngularJS ?

Pourquoi utiliser la syntaxe « contrôleur en tant que » dans AngularJS ?

DDD
DDDoriginal
2024-10-26 19:21:30318parcourir

Why Use

Comprendre la syntaxe « contrôleur en tant que » d'AngularJS

Introduction

AngularJS a introduit une nouvelle syntaxe pour définir les contrôleurs, « contrôleur en tant que », ce qui a soulevé certains questions sur son objectif. Cet article vise à clarifier la justification de cette syntaxe et ses avantages.

Contrôleur en tant que syntaxe

La syntaxe "contrôleur en tant que" vous permet d'instancier un contrôleur et de l'affecter à une variable dans le courant portée. Par exemple :

<code class="javascript">controller('InvoiceController as invoice')</code>

Ce code indique à Angular de créer une instance de InvoiceController et de la stocker dans la variable de facture dans la portée actuelle.

Suppression de $scope de Controller

Une différence notable avec la syntaxe "controller as" est qu'elle élimine le paramètre $scope de la définition du contrôleur. Cela permet d'obtenir des contrôleurs plus propres et plus concis :

<code class="javascript">// With $scope
function InvoiceController($scope) {
  // Do something with $scope.qty
}

// With controller as
function InvoiceController() {
  // Do something with this.qty
}</code>

Attribuer des alias dans la vue

Bien que la suppression de $scope du contrôleur simplifie le code, cela vous oblige à spécifier un alias dans la vue :

<code class="html">// With $scope
<input type="number" ng-model="qty" />

// With controller as
<input type="number" ng-model="invoice.qty" /></code>

Objectifs de la syntaxe du contrôleur en tant que

La syntaxe "contrôleur en tant que" a été introduite principalement pour ces raisons :

  • Suppression de $scope : Certains développeurs préfèrent éviter la syntaxe $scope, estimant qu'elle obscurcit la source des propriétés.
  • Clarté de l'origine de la propriété : En utilisant des alias dans la vue, il devient clair lequel les propriétés appartiennent à quel contrôleur. Ceci est particulièrement utile lors de l'imbrication de contrôleurs.
  • Évitement des problèmes de règle de point : La syntaxe « contrôleur en tant que » permet d'éviter les problèmes avec la « règle de point » d'AngularJS, qui peut rendre difficile l'accès aux propriétés. des contrôleurs parents. Il permet un accès clair et hiérarchique aux propriétés du contrôleur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn