• angular入门试水-基本指令理解


    今天初步了解了angularJS的基本指令:ng-app ,ng-model ,ng-bind。简单来说,这3个指令的含义如下所述:

    ng-app 指令告诉 AngularJS,<div> 元素是 AngularJS 应用程序 的"所有者"。

    ng-model 指令把输入域的值绑定到应用程序变量 name

    ng-bind 指令把应用程序变量 name 绑定到某个段落的 innerHTML。

    为了更好地了解这些指令,做了一些尝试:

    首先是ng-app指令,结论是一个页面中只可能只有一个ng-app指令,因为当有第2个ng-app指令时,第2个ng-app指令中的内容不会被编译;而且ng-app所在的div是不带名称的,是空值

    如下图所示为所做的尝试之一及其界面运行结果:

    当代码片段为下列代码所示时,angular中的元素可以被正常编译;当是第2,3,4个代码块时,代码都不会被正常编译。

    <div ng-app="">
    <p>名字 : <input type="text" ng-model="name"></p>
    <h1>Hello {{name}}</h1>
    </div>

    从以上代码可以看出,第2个div块并没有被编译(div ng-app=" "),第3个div和第4个div块也并没有被编译。原因有待分析。如上图所示,ng-app的作用就相当于告诉angular,这是一个angular应用程序,要被编译成angular。

    2.接下来简单对ng-model和ng-bind分析了一下:

    如上述代码所示,ng-model和ng-bind的作用和区别就很显然了。ng-model 指令把元素值(比如输入域的值)绑定到应用程序,ng-bind 指令把应用程序数据绑定到 HTML 视图。

    3.前面提到ng-app的名称要为空时,angular才可以正常编译,但是ng-app名称不为空的时候,应该怎么处理呢?难道就编译不了了吗?接下来了解一下angular里面的Controller和module,以及ng-controller。前面提到ng-app的作用是指明这是一个angular应用,那么ng-controller的作用大致就是处理anguar里面的逻辑的控制器。Module和Controller的官方解释如下图所示:

    AngularJS 模块(Module) 定义了 AngularJS 应用。

    AngularJS 控制器(Controller) 用于控制 AngularJS 应用。

    接下来通过代码来理解一下这2个概念:

    如上述代码所示,当ng-app指定了一个ng-app名称为“myApp”的一个应用时,如果没有js代码时,angular就不会正常编译;但是angular提供了module函数,module()函数可用于定义angular应用;当定义了angular应用之后,可以通过controller函数来处理应用的逻辑。

    这样就对angular中的基本指令有了大概的了解,可以说入门angular了。但是这里有没有一个疑惑就是angular中的变量都是用{{}}包围起来才被正常编译的,这里说一下{{表达式}}在angular中表示AngularJS 表达式把数据绑定到 HTML,这与 ng-bind 指令有异曲同工之妙。AngularJS 将在表达式书写的位置"输出"数据。AngularJS 表达式 很像 JavaScript 表达式:它们可以包含文字、运算符和变量。

    最后附上源码:可以帮助尝试:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
    </head>
    <body>

    <p>尝试修改以下表单。</p>

    <div ng-app="myApp" ng-controller="myCtrl">

    名: <input type="text" ng-model="firstName"><br>
    姓: <input type="text" ng-model="lastName"><br>
    <br>
    姓名: {{firstName + " " + lastName}}

    </div>

    <script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
    $scope.firstName= "John";
    $scope.lastName= "Doe";
    });
    </script>

    </body>
    </html>

  • 相关阅读:
    dubbo学习(一)认识
    MySQL学习(九)小结
    MySQL学习(八)删除表数据
    MySQL学习(六)change-buffer
    RPC 学习(一)认识
    MySQL学习(五)事务隔离
    MySQL学习(四)死锁及死锁检测
    计算机操作系统 --- 进程和进程的上下文切换
    MySQL 学习(三)事务学习
    消息队列(七)--- RocketMQ延时发送和消息重试(半原创)
  • 原文地址:https://www.cnblogs.com/zdjBlog/p/11102808.html
Copyright © 2020-2023  润新知