Home >Web Front-end >JS Tutorial >AngularJs learning controller, data binding, scope detailed explanation

AngularJs learning controller, data binding, scope detailed explanation

零下一度
零下一度Original
2017-07-23 18:05:211400browse

1. Controller:

Concept: In angularJS, the controller is a function that is used to add additional functions to the scope of the view and to set the role. The initial state of the domain and add custom behavior.

Controller declaration: app.controller('controllerName',function($scope){...})

//    控制器定义//    第一参数: 控制器名称, 第二个参数: 匿名函数, 传入作用域,并在作用域上添加额外功能app.controller('myCtrl', function($scope) {
        $scope.expression = "hello expression";
        $scope.ngbind = "hello ng-bind";
        $scope.htmlbind = "d12c29ee83e5b622484f1e9842eecbbdhello,htmlbinde6e38b3c62e8df885fe2e3986461aa63";
        $scope.subCtrl = "hello subCtrl";

    });

Use of controller :Add ng-controller where needed (on a certain HTML tag).

<body ng-app="myapp" ng-controller="myCtrl">

From the above, the definition and use of control are relatively simple, but many people will not understand the role of the controller and the Some people don’t understand what code needs to be written in the application. Some people will push the entire code into the controller. I personally think that the controller is just a link between the page view and mode, and only handles some data binding and event binding. Waiting for some simple logic, specific server access or data reading, etc. should be implemented in the service. I will tell you about the service in detail next time.

I have simply sorted out the things to pay attention to when using the control for your reference:

1) Try to simplify the operations related to the controller and $scope as much as possible.
2) Do not reuse Controller. A controller is generally only responsible for a small part of the view.
3) Do not manipulate the DOM in the Controller, this is not the responsibility of the controller.
4) Try not to do data filtering or data operations in the Controller.
5) Generally speaking, Controllers will not call each other. The interaction between controllers will be through events.

2. Scope ($scope)

Scope is also mentioned in the above controller. The controller mainly performs operations related to $scope. Let me briefly talk about the role of scope in AngularJs and its life cycle. I use The summary of the internal sharing is posted for everyone to share:

##3. Data binding:

AngularJs data binding also has several bindings. I will list them for you. Maybe everyone has used them, and some friends may not have used some of them.
## 1) Exp me {{}}:

constant: {{'const'}}

variable: {{abc}}
Function: {{{{{{{{{{ func()}}
                    Expression: {{a+b}}

                                                ’ s ’ s ’ s ’ s ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ 1 to 1 to 1 to 1 to 10 seconds. The expression is automatically parsed into an expression or variable recognized by Html.

      2) Instruction method (ng-bind):

                This binding method is to add the ng-bind instruction on the element, and then Angular parses the instruction and executes the binding.

3) Ng-Model:

This method is mainly used in form submission, realizing two-way data binding, and two-way data between page content and Model.

  4) ng-bind-html:

This method is mainly used for binding Html elements, because Angularjs does not parse Html tags by default and outputs them directly, so I want to add them to the page. You can use this binding method to display the content of Html tags, but this binding needs to reference a serialized js file.

 bea4b67a9fe0f78efa78bb17563afef42cacc6d41bbb37262a98f745aa00fbf0
5) ng-bind-template:

This method can bind multiple variables and expressions at one time.

Usage scenarios:

The homepage uses ng-bind, the pages in the template can use brackets {{}}, and the form uses ng-model,

{{}} Grammar defects: It is possible to see {} when the user is constantly refreshing; and it is also possible to see when the network is not good. The following code The overall code for the above five methods:

76c82f278ac045591c9159d381de2c57
9fd01892b579bba0c343404bcccd70fb

93f0f5c25f18dab9d176bd4f6de5d30e
    a80eb7cbb6fff8b0ff70bae37074b813
    b2386ffb911b14667cb8f0f91ea547a7首页6e916e0f7d1e588d4f442bf645aedb2f
    8c811ac8fd9babb9040140530f82b25d
    77270bb742f3ad5194245f4c8255d4462cacc6d41bbb37262a98f745aa00fbf0
    60220d8de1216b63e9c1b28a224c045e
    bea4b67a9fe0f78efa78bb17563afef42cacc6d41bbb37262a98f745aa00fbf0
9c3bca370b5104690d9ef395f2c5f8d1

ccdadbad7e3059b89eb400c635c34cbf

1f053390e7c21aca8a3642f3056f0325
    f134b2367422703a79a890ff392a97ed
    4a249f0d628e2318394fd9b75b4636b1{{expression}}473f0a7621bec819994bb5020d29372a
    111b486f21321f3cada78ef45ecdb88b
    c1a436a314ed609750bd7c7d319db4da{{ngmodel}}2e9b454fa8428549ca2e64dfac4625cd
    29f0abed5aaa39b48e876871254471b0
    019e17b222897eccffa24631cf5a4ef8
    55c6de69ad377b88a286836e38b9a14639528cedfa926ea0c01e69ef5b2ea9b0
    e98a5e78d495c45e9e5b79ae614e661739528cedfa926ea0c01e69ef5b2ea9b0
    3705e54a06f7229001d05ca799a8e1b1
    6235f479a55e5cc5abecaaa6ff74a16b0f6dfd1e3624ce5465eb402e300e01ae
    1f1e0a0a08c80c27718d6a0eccae0f79
    1297111b1e5dbccf7bcf0ba0c1d6d63a46eb22d0a433f22cff9940d34d5612bf
36cc49f0c466276486e50c850b7e4956

73a6ac4ed44ffec12cee46588e518a5e
3f1c4e4b6b16bbbd69b2ee476dc4f83a//模块定义// 第一个参数:应用名称,第二个参数:应用依赖模块var app = angular.module('myapp', ['ngSanitize']);//    控制器定义//    第一参数: 控制器名称, 第二个参数: 匿名函数, 传入作用域,并在作用域上添加额外功能app.controller('myCtrl', function($scope) {
        $scope.expression = "hello expression";
        $scope.ngbind = "hello ng-bind";
        $scope.htmlbind = "d12c29ee83e5b622484f1e9842eecbbdhello,htmlbinde6e38b3c62e8df885fe2e3986461aa63";
        $scope.subCtrl = "hello subCtrl";

    });2cacc6d41bbb37262a98f745aa00fbf0

The above is the detailed content of AngularJs learning controller, data binding, scope detailed explanation. For more information, please follow other related articles on the PHP Chinese website!

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