zoukankan      html  css  js  c++  java
  • 初识 Angular 体会

    一句话描述:一个前端的类似MVC框架的JS库

    刚接触2天,刚一看感觉和asp.net mvc能实现的功能有点重复.

    虽然asp.net的表单验证,Razor语法使其在前端开发有较大提升,但要实现比较高级复杂效果还是要

    客户端JS来实现,服务端更多是提供和保存数据的角色.

    如果只是简单的CURD应用,用原始Mvc的功能会效率更高也够用.

    很多前端js框架注重的是UI表现.而angular注重的是如何管理和表现数据.

    angular本身不提供样式和控件,是一个管理数据,控制输出的JS库.

    虽然很多控件库对于复杂控件都支持绑定json数据.但没有angular这么方便好用自由全面.

    适用:CURD应用,富客户端,重客户端/轻服务端的应用(对数据处理较复杂)

    不适合:高度灵活自由的,游戏类,过于简单的.

    标签属性介绍(网上复制,经过一点加工):

    ng-app 类似命名空间,区分不同控制器.

    var app = angular.module('AppName', []);
    

    ng-controller 声明一个新的控制器的名字.

    app.controller('ControllName', function($scope) {
        $scope.Property=...
    });
    
    实例化控制器,第二个参数控制器构造函数.可以给控制器属性,方法赋值.
    
    这些值就是Model. $scope就是每个控制器的Model.作用域:当前控制器及其子Dom.

    AngularJS $http

    AngularJS $http 是一个用于读取web服务器上数据的服务。

    $http.get(url) 是用于读取服务器数据的函数

    app.controller('customersCtrl', 
     function($scope, $http) {
        $http.get("http://xxx.php")
        .success(function(response) {$scope.names = response.records;});
    });

    ng-model 将当前Dom输入值或值绑定到指定Model(即保存数据的变量)

    这种绑定是双向的(如果Model值改变了,这个Dom对象的值也会跟着变)

    <div ng-app="myApp" ng-controller="myCtrl">
        名字: <input ng-model="name">
        <h1>你输入了: {{name}}</h1>
    </div>

    可以通过(valid:合法, dirty:值是否改变了, touched:是否触屏点击, error)来获取所绑定Dom对象的状态.

    <form ng-app="" name="myForm" ng-init="myText = 'test@123.com'">
        <input type="email" name="myAddress" ng-model="myText"required></p>
        <h1>状态</h1> {{myForm.myAddress.$valid}}
    </form>
    绑定的Dom对象的状态相关的css样式
    <style>
    input.ng-invalid {
        background-color: lightblue;
    }
    </style>
    
    

     ng-init 指令初始化应用程序数据。

    <div ng-app="" ng-init="firstName='John'">
    
      <p>在输入框中尝试输入:</p>
      <p>姓名:<input type="text" ng-model="firstName"></p>
      <p>你输入的为: {{ firstName }}</p>
    
    </div> 
    

     ng-repeat 指令会重复一个 HTML 元素:

    <div ng-app="" ng-init="names=['Jani','Hege','Kai']">
      <p>使用 ng-repeat 来循环数组</p>
      <ul>
        <li ng-repeat="x in names">
          {{ x }}
        </li>
      </ul>
    <div>
    

     表格:

    <table>
      <tr ng-repeat="x in names | orderBy : 'Country'">
        <td>{{ x.Name }}</td>
        <td>{{ x.Country }}</td>
      </tr>
    </table>
    

     其他常用指令

    ng-disabled  bool  对应 Dom 的 disabled 属性。
    ng-show  bool 显示和隐藏
    ng-click function/Expression onclick事件执行代码
    
  • 相关阅读:
    关于div 浮动在select,或table控件之上
    页面table的每行都有一个<input type='button' />,如何实现点击按钮在按钮下方弹出一个div,点击空白消失
    BAT 遍历文件夹和子文件夹下所有文件
    在windows上一键编译各种版本的protobuf(2017-12-05修改)
    安装CentOS Core之后布置环境脚本
    优先级队列
    Ubuntu 设置Vim tab为四个空格
    Mysql 只导出数据,不包含表结构
    Kib Kb KB KIB 区别
    护眼色
  • 原文地址:https://www.cnblogs.com/niconico/p/5171091.html
Copyright © 2011-2022 走看看