初识 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事件执行代码

 

posted @ 2016-01-30 15:02  NNiiccoo  阅读(207)  评论(0编辑  收藏  举报

去Yes