【AngularJS系列2】scope
Scope是AngularJS里的一个很重要的概念,简单的说它就是用来保存AngularJS Model们的对象,是Model们温暖的小家~ 那这个小家是什么时候造的呢? 1 html ng-app = mainApp 2 / html 我们知道, ng-app 是一个应用启动AngularJS的入口点,在这里也会创建一个r
Scope是AngularJS里的一个很重要的概念,简单的说它就是用来保存AngularJS Model们的对象,是Model们温暖的小家~
那这个小家是什么时候造的呢?
<span>1</span> <span>html</span> <span>ng-app</span>=<span>"mainApp"</span>> <span>2</span> <span><span>html</span>></span>
我们知道, ng-app
是一个应用启动AngularJS的入口点,在这里也会创建一个root
scope,在controller里可以通过 $rootScope
调到,每个应用只能有一个root
scope(当然了~root嘛~),但它会有多个child scope,那啥时候会创建child scope呢?
<span>1</span> <span>html</span> <span>ng-app</span>=<span>"mainApp"</span>> <span>2</span> <span>body</span> <span>ng-controller</span>=<span>"MainCtrl"</span>> <span>3</span> <span>div</span> <span>ng-controller</span>=<span>"SubCtrl"</span> <span>ng-include</span> <span>src</span>=<span>" 'template.html' "</span>> <span>4</span> <span><span>div</span>></span> <span>5</span> <span>ul</span>> <span>6</span> <span>li</span> <span>ng-repeat</span>=<span>"item in items"</span>>{{item.name}}<span><span>li</span>></span> <span>7</span> <span><span>ul</span>></span> <span>8</span> <span><span>body</span>></span> <span>9</span> <span><span>html</span>></span>
在上面的例子里, ng-controller
ng-include
ng-repeat
都创建了新的child
scope( ng-repeat
是对每一个重复的元素都创建了新的child
scope),他们之间的父子关系是这样的:
包含关系即是他们的父子关系,子scope是可以访问父scope上绑定的所有model和function的。
AngularJS会给scope对应的dom添加叫ng-scope的class,如果我们给自己的应用加这样一个css~
<span>1</span> <span><span>.ng-scope</span> </span><span>{<span><span><span>border</span></span></span><span>:<span><span> <span>2</span>px dotted red</span></span><span>;</span></span><span>}</span></span>
通过红色的虚线边框我们也可以看出来大概scope的范围,但注意,并不是所有的ng-scope都是新的scope,有些ng-scope类名对应的dom共享的是同一个scope。
细心的童鞋可能注意到, ng-controller="SubCtrl"
和 ng-include
放在同一个div上了,为啥 ng-controller="SubCtrl"
就是爸爸, ng-include
就是儿子呢?
这个没啥特别的原因, ng-controller
在AngularJS底层代码里实现的比较靠前而已,与在div上标明的顺序无关,但是这时会发生一个问题:
假如在 ng-include
对应的 template.html
里有这样的代码:
template.html
<span>1</span> <span><span></span><span><span><span>input</span> </span><span><span>type</span></span><span>=<span>"text"</span></span><span> <span>ng-model</span></span><span>=<span>"lastName"</span></span> <span>></span></span></span>
我们会发现,在 ng-controller="SubCtrl"
这个controller里是取不到lastName
的值的。
原因是这样的~
我们假设 ng-controller="SubCtrl"
对应的是 Scope
A , ng-include
对应的是 Scope
B ~
-
ng-include
创建的 Scope B 是ng-controller
创建的 Scope A 的子scope,所以在template.html
里可以访问 Scope A 的model和function。 - 在
template.html
里用ng-model
绑定的model,是存放在 Scope B 上的,Scope A 是拿不到的,即使model同名。
解决方案:
- 直接对 Scope A 的model绑定成员对象,如
ng-model="user.lastName"
- 或在
template.html
使用ng-model
绑定model时,加上$parent
(取父scope),如:ng-model="$parent.lastName"
,这样info就绑定在 Scope A上了
比较推荐第一种方式,因为第一种抽象出了对象,比起第二种所有的model都直接绑在$scope上来,封装的更好~
这里是官方Scope介绍~

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La série Xiaomi Mi 15 devrait être officiellement lancée en octobre, et les noms de code de sa série complète ont été exposés dans la base de code MiCode des médias étrangers. Parmi eux, le produit phare Xiaomi Mi 15 Ultra porte le nom de code « Xuanyuan » (qui signifie « Xuanyuan »). Ce nom vient de l'Empereur Jaune dans la mythologie chinoise, qui symbolise la noblesse. Le Xiaomi 15 porte le nom de code « Dada », tandis que le Xiaomi 15Pro s'appelle « Haotian » (qui signifie « Haotian »). Le nom de code interne du Xiaomi Mi 15S Pro est « dijun », qui fait allusion à l'empereur Jun, le dieu créateur du « Classique des montagnes et des mers ». Couvertures de la série Xiaomi 15Ultra

Depuis la mise en vente de la série Huawei Mate60 l’année dernière, j’utilise personnellement le Mate60Pro comme téléphone principal. En près d'un an, le Huawei Mate60Pro a subi plusieurs mises à niveau OTA et l'expérience globale a été considérablement améliorée, donnant aux gens le sentiment d'être constamment nouveaux. Par exemple, récemment, la série Huawei Mate60 a de nouveau reçu une mise à niveau majeure de ses capacités d'imagerie. Le premier est la nouvelle fonction d'élimination de l'IA, qui peut éliminer intelligemment les passants et les débris et remplir automatiquement les zones vides. Deuxièmement, la précision des couleurs et la clarté du téléobjectif de la caméra principale ont été considérablement améliorées. Étant donné que c'est la rentrée scolaire, la série Huawei Mate60 a également lancé une promotion d'automne : vous pouvez profiter d'une réduction allant jusqu'à 800 yuans lors de l'achat du téléphone, et le prix de départ est aussi bas que 4 999 yuans. Produits couramment utilisés et souvent nouveaux avec une grande valeur

Javascript est un langage tout à fait unique. Il est unique en termes d'organisation du code, de paradigme de programmation du code et de théorie orientée objet. La question de savoir si Javascript est un langage orienté objet a été débattue depuis un certain temps. Il y a évidemment une réponse depuis longtemps. Cependant, même si Javascript est dominant depuis vingt ans, si vous souhaitez comprendre les frameworks populaires tels que jQuery, Angularjs et même React, il suffit de regarder le « Black Horse Cloud Classroom JavaScript Advanced Framework ». Tutoriel vidéo de conception".

L'iPhone15 et l'iPhone15Pro ont été officiellement lancés aujourd'hui. Cependant, en tant que modèles haut de gamme, la série Pro a non seulement un prix plus élevé, mais possède également de nombreuses fonctionnalités exclusives. Les consommateurs doivent reconnaître les différences avant d'acheter, afin de ne pas en découvrir après avoir acheté l'iPhone15. . La fonction est uniquement disponible dans la série Pro. Bien que les moniteurs soient équipés du même panneau d'affichage, la technologie de fréquence de mise à jour adaptative automatique ProMotion et la fonction d'affichage permanent sont toujours exclusives à la série Pro. Le reste des séries iPhone 15 et iPhone 15 Pro sont les mêmes en termes de résolution, de contraste, de luminosité maximale, etc. Bouton d'action Le bouton d'action est actuellement une conception exclusive pour la série iPhone 15 Pro, permettant aux utilisateurs de le personnaliser.

À l’ère de l’information d’aujourd’hui, les sites Web sont devenus un outil important permettant aux individus d’obtenir des informations et de communiquer. Un site Web réactif peut s’adapter à divers appareils et offrir aux utilisateurs une expérience de haute qualité, ce qui est devenu un point chaud dans le développement de sites Web modernes. Cet article expliquera comment utiliser PHP et AngularJS pour créer un site Web réactif afin d'offrir une expérience utilisateur de haute qualité. Introduction à PHP PHP est un langage de programmation open source côté serveur idéal pour le développement Web. PHP présente de nombreux avantages, tels que la facilité d'apprentissage, la multiplateforme, la riche bibliothèque d'outils et l'efficacité du développement.

Avec le développement continu d'Internet, les applications Web sont devenues un élément important de la construction de l'information d'entreprise et un moyen nécessaire au travail de modernisation. Afin de faciliter le développement, la maintenance et l'extension des applications Web, les développeurs doivent choisir un cadre technique et un langage de programmation adaptés à leurs besoins de développement. PHP et AngularJS sont deux technologies de développement Web très populaires. Ce sont respectivement des solutions côté serveur et côté client. Leur utilisation combinée peut considérablement améliorer l'efficacité du développement et l'expérience utilisateur des applications Web. Avantages de PHPPHP

De nombreux utilisateurs souhaitant acheter des clés USB souhaitent savoir quelle série de clés USB possède la marque GALAX Hall of Fame. En fait, cette marque propose actuellement trois séries, à savoir l'édition limitée HOFEXTREME, HOFEXTREME et HOFPORGB. Quelles sont les séries de mémoire Hall of Fame : A : édition limitée HOFEXTREME, HOFEXTREME, HOFPORGB. Ces trois modules de mémoire ont tous des performances relativement bonnes. Parmi eux, l'édition limitée HOFEXTREME a les meilleures performances. Par rapport aux deux modèles précédents, le HOFPRORGB est légèrement plus faible mais les performances sont également très bonnes. Introduction à l'extension de mémoire Hall of Fame : 1. Utilisation de particules Samsung B-die, qui sont le roi des particules de mémoire et ont une longue durée de vie.

Avec la popularité et le développement d’Internet, le développement front-end est devenu de plus en plus important. En tant que développeurs front-end, nous devons comprendre et maîtriser divers outils et technologies de développement. Parmi eux, PHP et AngularJS sont deux outils très utiles et populaires. Dans cet article, nous verrons comment utiliser les deux outils pour le développement front-end. 1. Introduction à PHP PHP est un langage de script open source populaire côté serveur. Il convient au développement Web et peut fonctionner sur des serveurs Web et divers systèmes d'exploitation. Les avantages de PHP sont la simplicité, la rapidité et la commodité
