search
HomeWeb Front-endJS TutorialAngularJS built-in directive_AngularJS

directive, I understand it as a way for AngularJS to operate HTML elements.
Since the first step in learning AngularJS is to write the built-in directive ng-app to indicate that this node is the root node of the application, the directive is already familiar.

This blog briefly records some built-in commands. Let’s use them first, and then talk about some interesting things.

Built-in commands

All built-in instructions are prefixed with ng. It is not recommended for custom instructions to use this prefix to avoid conflicts.
Start with some common built-in commands.
Let’s first list some key built-in instructions, and briefly talk about scope issues.

ng-model

Binding the form control to the properties of the current scope does not seem to be correct.
But don’t worry about the wording for now, it’s easy to understand when used, for example:

Copy code The code is as follows:



{{someModel.someProperty}}

ng-init

This directive will initialize the inner scope when called.
This command usually appears in relatively small applications, such as giving a demo or something...

Copy code The code is as follows:


I'm a/an {{job}}

In addition to ng-init, we have more and better options.

ng-app

Every time you use AngularJS, you cannot do without this command. By the way, $rootScope.
The element that declares ng-app will become the starting point of $rootScope, and $rootScope is the root of the scope chain, usually declared in you know.
In other words, all scopes under the root can access it.
However, it is not recommended to overuse $rootScope, otherwise global variables will be everywhere, which will be inefficient and difficult to manage.
Here is an example:

Copy code The code is as follows:



{{ someProperty }}

<script><br /> var myApp = angular.module('myApp', [])<br /> .run(function($rootScope) {<br /> $rootScope.someProperty = 'hello computer';<br /> }); <br /> </script>

ng-controller

We use this command to install a controller on a DOM element.
A controller? Indeed, it is good to understand it literally, so why do we need a controller?
Remember that in AngularJS 1.2.x, you can define controller like this...

Copy code The code is as follows:

function ohMyController($scope) {
//...
}

This method is prohibited in AngularJS 1.3.x, because this method will make the controllers fly all over the sky, and it will be impossible to distinguish the levels. Everything is hung on $rootScope...
ng-controller must have an expression as a parameter. In addition, $scope is used to inherit the methods and properties of the superior $scope, including $rootScope.
The following is just a simple example. The ancestor cannot access the scope of the child.

Copy code The code is as follows:


{{ ancestorName }}
{{ childName }}

             {{ ancestorName }}
             {{ childName }}


<script><br /> var myApp = angular.module('myApp', [])<br /> .controller('ChildController', function($scope) {<br /> $scope.childName = 'child';<br /> })<br /> .controller('AncestorController', function($scope) {<br /> $scope.ancestorName = 'ancestor';<br /> });<br /> </script>

The problem of scope goes beyond that. Let’s put it aside for now and continue to look at other built-in instructions.

ng-form

At first I didn’t understand why there was a form command, but the

tag seemed useful enough.
Taking form verification as an example, there is this piece of code in the previous article:

Copy code The code is as follows:


That is, the submit button is disabled when the form's status is $invalid.
If the scenario is a little more complicated, for example, a parent form has multiple subforms, and the parent form can be submitted when three verifications in the subforms pass.
However,

cannot be nested.
Considering this scenario, we use the ng-form directive to solve this problem.
For example:

Copy code The code is as follows:



Name:

ID number:




Guardian name:

Guardian ID number:



ng-disabled

For attributes like this that are effective as long as they appear, we can make them effective by returning true/false expressions in AngularJS.
Disable form input fields.

Copy code The code is as follows:


ng-readonly

Set the form input field to read-only through the expression return value true/false.
As an example, it will become read-only after 3 seconds.

Copy code The code is as follows:


.run(function($rootScope,$timeout){
$rootScope.stopTheWorld=false;
$timeout(function(){
           $rootScope.stopTheWorld = true;
},3000)
})

ng-checked

This is for , such as...

Copy code The code is as follows:


ng-selected

is used for the

Copy code The code is as follows:



ng-show/ng-hide

Show/hide HTML elements based on expressions. Note that they are hidden, not removed from the DOM, for example:

Copy code The code is as follows:


1 1=2


You can't see me.

ng-change

It’s not onXXX like HTML, but ng-XXX.
Used in conjunction with ng-model, take ng-change as an example:

Copy code The code is as follows:


{{ calc.result }}

or like ng-options

{{}}

In fact, this is also a command. It may feel similar to ng-bind, but it may be seen when the page rendering is slightly slow.
In addition, the performance of {{}} is far inferior to ng-bind, but it is very convenient to use.

ng-bind

The behavior of ng-bind is similar to {{}}, except that we can use this command to avoid FOUC (Flash Of Unrendered Content), which is the flicker caused by unrendering.

ng-cloak

ng-cloak can also solve FOUC for us. ng-cloak will hide internal elements until the route calls the corresponding page.

ng-if

If the expression in ng-if is false, the corresponding element will be removed from the DOM instead of hidden, but when inspecting the element you can see that the expression becomes a comment.
If the phase is hidden, you can use ng-hide.

Copy code The code is as follows:


The element cannot be reviewed


Can be censored

ng-switch

Used alone, it is meaningless. Here is an example:

Copy code The code is as follows:


0


1


2


3



ng-repeat

I don’t understand why it’s not called iterate. In short, it traverses the collection and generates template instances for each element. Some special attributes can be used in the scope of each instance, as follows:

Copy code The code is as follows:

$index
$first
$last
$middle
even
odd

No need to explain, it’s easy to see what these are for. Here is an example:

Copy code The code is as follows:


  • {{char.alphabet}}


ng-href

At first I made an ng-model in a text field, and then wrote in the href like this.
In fact, there is no difference between href and ng-href, so we can try this:

Copy code The code is as follows:


.run(function($rootScope, $timeout) {
$rootScope.linkText = 'Not loaded yet, you cannot click';
$timeout(function() {
          $rootScope.linkText = 'Please click'
          $rootScope.myHref = 'http://google.com';
}, 2000);
})

ng-src

Much the same, that is, do not load the resource before the expression takes effect.
Example (ps: nice picture! ):

Copy code The code is as follows:

AngularJS built-in directive_AngularJS
.run(function($rootScope, $timeout) {
$timeout(function() {
          $rootScope.imgSrc = 'https://octodex.github.com/images/daftpunktocat-guy.gif';
}, 2000);
})

ng-class

Dynamically change the class style using objects in the scope, for example:

Copy code The code is as follows:




Number is: {{ x }}



.controller('CurTimeController', function($scope) {
$scope.getCurrentSecond = function() {
          $scope.x = new Date().getSeconds();
};
})

The above is all the content described in this article, I hope you all like it.

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Javascript Data Types : Is there any difference between Browser and NodeJs?Javascript Data Types : Is there any difference between Browser and NodeJs?May 14, 2025 am 12:15 AM

JavaScript core data types are consistent in browsers and Node.js, but are handled differently from the extra types. 1) The global object is window in the browser and global in Node.js. 2) Node.js' unique Buffer object, used to process binary data. 3) There are also differences in performance and time processing, and the code needs to be adjusted according to the environment.

JavaScript Comments: A Guide to Using // and /* */JavaScript Comments: A Guide to Using // and /* */May 13, 2025 pm 03:49 PM

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python vs. JavaScript: A Comparative Analysis for DevelopersPython vs. JavaScript: A Comparative Analysis for DevelopersMay 09, 2025 am 12:22 AM

The main difference between Python and JavaScript is the type system and application scenarios. 1. Python uses dynamic types, suitable for scientific computing and data analysis. 2. JavaScript adopts weak types and is widely used in front-end and full-stack development. The two have their own advantages in asynchronous programming and performance optimization, and should be decided according to project requirements when choosing.

Python vs. JavaScript: Choosing the Right Tool for the JobPython vs. JavaScript: Choosing the Right Tool for the JobMay 08, 2025 am 12:10 AM

Whether to choose Python or JavaScript depends on the project type: 1) Choose Python for data science and automation tasks; 2) Choose JavaScript for front-end and full-stack development. Python is favored for its powerful library in data processing and automation, while JavaScript is indispensable for its advantages in web interaction and full-stack development.

Python and JavaScript: Understanding the Strengths of EachPython and JavaScript: Understanding the Strengths of EachMay 06, 2025 am 12:15 AM

Python and JavaScript each have their own advantages, and the choice depends on project needs and personal preferences. 1. Python is easy to learn, with concise syntax, suitable for data science and back-end development, but has a slow execution speed. 2. JavaScript is everywhere in front-end development and has strong asynchronous programming capabilities. Node.js makes it suitable for full-stack development, but the syntax may be complex and error-prone.

JavaScript's Core: Is It Built on C or C  ?JavaScript's Core: Is It Built on C or C ?May 05, 2025 am 12:07 AM

JavaScriptisnotbuiltonCorC ;it'saninterpretedlanguagethatrunsonenginesoftenwritteninC .1)JavaScriptwasdesignedasalightweight,interpretedlanguageforwebbrowsers.2)EnginesevolvedfromsimpleinterpreterstoJITcompilers,typicallyinC ,improvingperformance.

JavaScript Applications: From Front-End to Back-EndJavaScript Applications: From Front-End to Back-EndMay 04, 2025 am 12:12 AM

JavaScript can be used for front-end and back-end development. The front-end enhances the user experience through DOM operations, and the back-end handles server tasks through Node.js. 1. Front-end example: Change the content of the web page text. 2. Backend example: Create a Node.js server.

Python vs. JavaScript: Which Language Should You Learn?Python vs. JavaScript: Which Language Should You Learn?May 03, 2025 am 12:10 AM

Choosing Python or JavaScript should be based on career development, learning curve and ecosystem: 1) Career development: Python is suitable for data science and back-end development, while JavaScript is suitable for front-end and full-stack development. 2) Learning curve: Python syntax is concise and suitable for beginners; JavaScript syntax is flexible. 3) Ecosystem: Python has rich scientific computing libraries, and JavaScript has a powerful front-end framework.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),